From 813d2e85a11ff6c61490baf9ad681a689d693d60 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Mon, 28 Sep 2026 20:51:30 +0200 Subject: [PATCH] Die Kuerzel stehen jetzt an dem, was sie bedienen Filipe, 28.09.2026: "das soll nicht ueberall sein sondern da perfekt integriert werden." Er hat recht: Die Legende war ein eigener Absatz am Ende der Regie -- hinter ALLEN Registern. Damit stand sie unter "Ton", unter "Spenden", unter "Gestaltung", also an sechs Stellen, an denen keines ihrer Kuerzel etwas tut. Eine Legende, die ueberall steht, gehoert nirgends hin. Und eine Legende ist ohnehin der Umweg: Sie zwingt dazu, vom Knopf zu einer Liste zu schauen und zurueck. Steht die Taste AM Knopf, liest man sie beim Bedienen -- und lernt sie dabei. Leertaste unter dem runden Play-Knopf (ein Wort passt nicht hinein, und der Knopf soll das Zeichen bleiben, das man blind trifft) Pfeile an -10 und +10 + und - am Wort "Tempo" N an "Naechstes" T an "Wechseln" M am Mikro-Knopf in der Senderleiste 1 bis 5 bei der Anordnung im Register "Bild" Nichts geht verloren, jedes steht dort, wo es wirkt. UND DIE PRUEFUNG STELLT EINE ANDERE FRAGE ALS VORHER. Sie pruefte, ob ein Kuerzel IRGENDWO in der Legende steht. Jetzt prueft sie, ob es am RICHTIGEN Knopf steht -- ein Kuerzel an der falschen Stelle ist schlimmer als keins. Dazu eine Gegenprobe, dass die alte Legende wirklich weg ist: Stuende beides da, pflegte beim naechsten Kuerzel jemand nur eine der beiden Stellen. Der Chat bleibt unveraendert: Er liegt in `#teil-live` und erscheint damit nur, wenn die Sendung laeuft -- so, wie Filipe es erwartet hat. pruef-reaktion 379/0 - pruef-css-klassen ok - pruef-tippziele 11/0 Co-Authored-By: Claude Opus 5 --- server/pruef-reaktion.mjs | 43 +++++++++++++++--- workspace/anruf-probe.html | 10 ++--- workspace/app.webmanifest | 8 ++-- workspace/assets/css/reaktion.css | 33 ++++++++++++++ workspace/aufgaben.html | 38 ++++++++-------- workspace/automation.html | 32 +++++++------- workspace/befinden.html | 34 +++++++------- workspace/bereich.html | 44 +++++++++---------- workspace/bewerben.html | 38 ++++++++-------- workspace/bewerbungen.html | 36 +++++++-------- workspace/buehne.html | 2 +- workspace/calls.html | 34 +++++++------- workspace/chat.html | 40 ++++++++--------- workspace/content.html | 34 +++++++------- workspace/crew-index.html | 12 ++--- workspace/crew.webmanifest | 8 ++-- workspace/dateien.html | 34 +++++++------- workspace/entwicklung.html | 36 +++++++-------- workspace/hilfe.html | 30 ++++++------- workspace/index.html | 10 ++--- workspace/kalender.html | 34 +++++++------- workspace/leistung.html | 32 +++++++------- workspace/material.html | 32 +++++++------- workspace/notizen.html | 28 ++++++------ workspace/personen.html | 32 +++++++------- workspace/profil.html | 36 +++++++-------- workspace/reaktion.html | 73 +++++++++++++++++-------------- workspace/rechte.html | 34 +++++++------- workspace/report.html | 36 +++++++-------- workspace/scouting.html | 32 +++++++------- workspace/start.html | 32 +++++++------- workspace/startcheck.html | 34 +++++++------- workspace/steckbrief.html | 36 +++++++-------- workspace/support.html | 28 ++++++------ workspace/tafel.html | 6 +-- workspace/talente.html | 36 +++++++-------- workspace/team.html | 32 +++++++------- workspace/teamlage.html | 34 +++++++------- workspace/teilen.html | 30 ++++++------- workspace/treff-moderation.html | 32 +++++++------- workspace/treff-regeln.html | 32 +++++++------- workspace/uebersicht.html | 32 +++++++------- workspace/unsere-seiten.html | 30 ++++++------- workspace/unterstuetzen.html | 32 +++++++------- workspace/werdegang.html | 32 +++++++------- workspace/willkommen.html | 30 ++++++------- workspace/wissen.html | 34 +++++++------- 47 files changed, 761 insertions(+), 686 deletions(-) diff --git a/server/pruef-reaktion.mjs b/server/pruef-reaktion.mjs index c411803e..77ab1e79 100644 --- a/server/pruef-reaktion.mjs +++ b/server/pruef-reaktion.mjs @@ -831,12 +831,45 @@ melde("=== 12. Die Regie ==="); "der Beenden-Knopf liegt in der Leiste -- also auch dann erreichbar, " + "wenn die Regie zugeklappt ist"); - /* Und die Kuerzel, die das Programm bindet, stehen auch dabei. - Ein Kuerzel, das niemand kennt, ist keins. */ - const legende = (html.match(/

[\s\S]*?<\/p>/) || [""])[0]; - for (const [taste, wort] of [["Leertaste", "Leertaste"], ["M", "M"], ["N", "N"]]) { - ok(legende.includes(`${wort}`), `das Kuerzel ${taste} steht in der Legende`); + /* ==== JEDE TASTE STEHT AN IHREM KNOPF ======================== + + Hier wurde bis zum 28.09. eine LEGENDE geprueft: ein Absatz am + Ende der Regie, der alle Kuerzel aufzaehlte. Der stand hinter + ALLEN Registern -- also auch unter „Ton" und „Spenden", wo + keines davon etwas tut. Und eine Legende zwingt dazu, vom Knopf + zur Liste zu schauen und zurueck. + + Jetzt steht jede Taste an dem Knopf, den sie bedient. Geprueft + wird deshalb nicht mehr, ob sie IRGENDWO steht, sondern ob sie + am RICHTIGEN Knopf steht -- ein Kuerzel an der falschen Stelle + ist schlimmer als keins. */ + const nahBei = (kennung, taste) => { + const i = html.indexOf(`id="${kennung}"`); + if (i < 0) return false; + /* Vom Knopfanfang bis zu seinem Ende -- nicht weiter, sonst + zaehlte die Taste des Nachbarn mit. */ + const bis = html.indexOf("", i); + return bis > 0 && html.slice(i, bis).includes(`${taste}`); + }; + for (const [kennung, taste, wo] of [ + ["v-zurueck", "←", "zehn Sekunden zurueck"], + ["v-vor", "→", "zehn Sekunden vor"], + ["v-naechstes", "N", "Naechstes"], + ["v-tauschen", "T", "Wechseln"], + ]) { + ok(nahBei(kennung, taste), `die Taste ${taste} steht an „${wo}"`); } + ok(/Leertaste<\/kbd><\/span>/.test(html), + "und die Leertaste unter dem Play-Knopf"); + ok(/id="s-mikro-wort">Mikro<\/span>M<\/kbd>/.test(html), + "das M am Mikro-Knopf"); + ok(/1<\/kbd> bis 5<\/kbd>/.test(html), + "und Eins bis Fuenf bei der Anordnung"); + /* GEGENPROBE: Die alte Legende darf NICHT mehr dastehen -- sonst + stuende dasselbe zweimal, und beim naechsten Kuerzel pflegt + jemand nur eine der beiden Stellen. */ + ok(!/

/.test(html), + "Gegenprobe: die Legende hinter allen Registern ist weg"); ok(/taste === 'm' \|\| taste === 'M'/.test(js) && /taste === 'n' \|\| taste === 'N'/.test(js), "und das Programm hoert auch darauf"); ok(/closest\('input, textarea, select/.test(js), diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index 5db7bc16..c331c83a 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,8 +16,8 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +