Skip to content

Commit af4c8a8

Browse files
author
AgentGUI
committed
a11y: skip-link + focus-visible + reduced-motion
- Add skip-to-conversation link as first body child — keyboard users can jump past sidebar - Add :focus-visible outline for keyboard nav — visible focus ring was missing - Add @media (prefers-reduced-motion: reduce) — honor OS motion-reduction setting - .skip-link CSS: off-screen until focused, jumps to top with visible styling WCAG 2.4.1 (bypass blocks), 2.4.7 (focus visible), 2.3.3 (animation from interactions)
1 parent 88370f8 commit af4c8a8

3 files changed

Lines changed: 45 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## [Unreleased] - GUI a11y pass
2+
3+
- index.html: remove `maximum-scale=1.0` and `user-scalable=no` from viewport (WCAG 1.4.4 — low-vision users need pinch-zoom)
4+
- index.html: add `theme-color` meta with light/dark media queries (native tab/chrome tinting on mobile)
5+
- index.html: add skip-to-conversation link as first body child for keyboard users
6+
- main.css: add `:focus-visible` outline for keyboard nav (previously no default visible focus ring)
7+
- main.css: add `@media (prefers-reduced-motion: reduce)` to collapse animations/transitions for users with vestibular disorders or motion-sensitivity OS setting
8+
- main.css: `.skip-link` styles (off-screen until focused)
9+
110
## [Unreleased] - GUI observability + workflow-plugin fix
211

312
- Fix regression from prior commit: workflow-plugin.js declared `dependencies: ['git','database']` but git plugin was deleted; plugin init failed with "Plugin git not found in registry". Removed unused git dep and stale binding.

static/css/main.css

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3248,4 +3248,37 @@
32483248
color: var(--color-text);
32493249
max-width: 120px;
32503250
}
3251-
3251+
3252+
3253+
.skip-link {
3254+
position: absolute;
3255+
top: -40px;
3256+
left: 0;
3257+
background: var(--color-primary, #3b82f6);
3258+
color: #fff;
3259+
padding: 8px 16px;
3260+
z-index: 10000;
3261+
text-decoration: none;
3262+
border-radius: 0 0 4px 0;
3263+
font-weight: 600;
3264+
}
3265+
.skip-link:focus {
3266+
top: 0;
3267+
}
3268+
3269+
:focus-visible {
3270+
outline: 2px solid var(--color-primary, #3b82f6);
3271+
outline-offset: 2px;
3272+
border-radius: 2px;
3273+
}
3274+
3275+
@media (prefers-reduced-motion: reduce) {
3276+
*,
3277+
*::before,
3278+
*::after {
3279+
animation-duration: 0.01ms !important;
3280+
animation-iteration-count: 1 !important;
3281+
transition-duration: 0.01ms !important;
3282+
scroll-behavior: auto !important;
3283+
}
3284+
}

static/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
<link rel="stylesheet" href="/gm/css/tools-popup.css" media="print" onload="this.media='all'">
4444
</head>
4545
<body>
46+
<a href="#app" class="skip-link">Skip to conversation</a>
47+
4648
<!-- Sidebar overlay (mobile) -->
4749
<div class="sidebar-overlay" data-sidebar-overlay></div>
4850

0 commit comments

Comments
 (0)