fix(a11y): Dialog-Vorrang in Fokusfalle, eindeutige Dialog-IDs, Bookmark nur Enter
- settings.js: _makeTrap bricht ab, wenn ein .dialog-overlay offen ist, damit der Dialog-keydown-Handler Escape/Tab allein behandelt (kein Doppelschluss, Fokusfalle bleibt dicht) - dialog.js: aria-labelledby/-describedby zeigen auf instanz-eindeutige IDs (Date.now + Modul-Zaehler) statt feste dialogTitle/dialogBody, damit kurz gestapelte Dialoge dem Screenreader nicht den falschen Titel liefern - boards.js: Bookmark-keydown reagiert bei role=link nur noch auf Enter, Space entfernt (Space ist Button-Semantik)
This commit is contained in:
+4
-3
@@ -271,10 +271,11 @@ function bindBoardListEvents(list, board) {
|
||||
}
|
||||
});
|
||||
|
||||
// Tastatur: Enter oeffnet den Bookmark wie ein Klick. Delete-Button bleibt
|
||||
// ein echter <button> und feuert seinen eigenen Klick ueber Space/Enter.
|
||||
// Tastatur: Enter oeffnet den Bookmark wie ein Klick. role="link" erwartet
|
||||
// nur Enter (Space ist Button-Semantik). Der Delete-Button bleibt ein echter
|
||||
// <button> und feuert seinen eigenen Klick ueber Space/Enter selbst.
|
||||
list.addEventListener('keydown', e => {
|
||||
if (e.key !== 'Enter' && e.key !== ' ') return;
|
||||
if (e.key !== 'Enter') return;
|
||||
const bmItem = e.target.closest('.bm-item');
|
||||
if (!bmItem || e.target !== bmItem) return; // nur wenn der li selbst fokussiert ist
|
||||
e.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user