Die Auswahlliste klappte hinter dem Dialog auf
Ein `<dialog>` mit `showModal()` liegt in der Top-Layer des Browsers, über allem — unabhängig von `z-index`. Die Liste hing am `body` und verschwand deshalb hinter genau dem Dialog, in dem ihr Knopf steht. Jetzt wird sie in den Dialog gehängt, wenn es einen gibt. Mit `elementFromPoint` nachgeprüft: an ihrer Stelle liegt wirklich ein Listeneintrag obenauf. Dazu zwei Stellen, die zu der Vermutung geführt haben, die Spracheinstellung wirke nicht: „Übersetzungen holen" stand stur auf en-US. Neben einem Server, der auf Deutsch steht, liest sich das wie eine Aussage über den Server. Vorgewählt wird jetzt die eigene Sprache, sonst die erste, die nicht schon die des Servers ist — und der Text nennt die Serversprache. Und „Meine Sprache" sagt jetzt deutlich, wenn sie abweicht. Sie ändert nicht, was der Server holt, nur was man selbst sieht: steht sie auf Englisch, während der Server auf Deutsch holt, sieht die ganze Mediathek englisch aus und jedes Auffrischen scheint wirkungslos. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e87d50e470
commit
ce38da1376
@@ -126,7 +126,13 @@ export function auswahl(optionen: Option[], vorgabe = ''): Auswahlfeld {
|
||||
if (e.key === 'Tab') schliessen();
|
||||
};
|
||||
|
||||
document.body.appendChild(box);
|
||||
// **In den Dialog, wenn es einen gibt.**
|
||||
//
|
||||
// Ein `<dialog>` mit `showModal()` liegt in der Top-Layer des Browsers —
|
||||
// über allem, unabhängig von `z-index`. Eine Liste am `body` verschwand
|
||||
// deshalb hinter dem Dialog, in dem ihr Knopf steht. Im Dialog selbst
|
||||
// liegt sie mit ihm in derselben Ebene.
|
||||
(knopf.closest('dialog') ?? document.body).appendChild(box);
|
||||
offen = box;
|
||||
knopf.setAttribute('aria-expanded', 'true');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user