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 <[email protected]>
This commit is contained in:
2026-09-28 20:51:30 +02:00
co-authored by Claude Opus 5
parent a6d55d939a
commit 813d2e85a1
47 changed files with 761 additions and 686 deletions
+38 -5
View File
@@ -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(/<p class="kuerzel">[\s\S]*?<\/p>/) || [""])[0];
for (const [taste, wort] of [["Leertaste", "Leertaste"], ["M", "M"], ["N", "N"]]) {
ok(legende.includes(`<kbd>${wort}</kbd>`), `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("</button>", i);
return bis > 0 && html.slice(i, bis).includes(`<kbd>${taste}</kbd>`);
};
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(/<span class="transport__taste"><kbd>Leertaste<\/kbd><\/span>/.test(html),
"und die Leertaste unter dem Play-Knopf");
ok(/id="s-mikro-wort">Mikro<\/span><kbd class="sender-taste">M<\/kbd>/.test(html),
"das M am Mikro-Knopf");
ok(/<kbd>1<\/kbd> bis <kbd>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(!/<p class="kuerzel">/.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),