feat: add keyboard navigation, escape-to-close modals, skip-to-content (A11Y-02)

All modals now close with Escape key. Interactive card divs respond to
Enter key. Skip-to-content link added to Dashboard layout. All Web5 and
Settings modals get role=dialog, aria-modal, and escape handlers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-11 13:11:45 +00:00
co-authored by Claude Opus 4.6
parent 46747607ea
commit c1131251f9
7 changed files with 460 additions and 148 deletions
+2
View File
@@ -176,9 +176,11 @@
data-controller-container
:data-controller-install="!(isInstalled(app.id) || installingApps.has(app.id)) && (app.source === 'local' || !!app.dockerImage) ? '1' : undefined"
tabindex="0"
role="link"
class="glass-card card-stagger p-6 hover:bg-white/10 transition-all cursor-pointer flex flex-col"
:style="{ '--stagger-index': index }"
@click="viewAppDetails(app)"
@keydown.enter="viewAppDetails(app)"
>
<div class="flex items-start gap-4 mb-4">
<img