Terminal boot sequence has no touch/click dismiss and isn't hidden from assistive tech #86

Closed
opened 2026-09-12 01:51:34 -04:00 by jared · 0 comments
Owner

Severity: low · Type: a11y · Confidence: high

Location: src/lotus-boot.ts:29-104

Problem

runLotusBootSequence injects a full-viewport overlay (z-index:10100) directly into document.body (outside React) when the Lotus Terminal theme is selected. The only way to skip it early is the Escape key (onKey at line 82); the overlay element itself has no onclick/onpointerdown handler and pointer-events is left at its default (auto), so tapping/clicking the full-screen overlay on a touch device does nothing — mobile/touch users must wait out the full ~1.5–2s sequence. The overlay and its "[ ESC ] skip" hint also carry no aria-hidden/role="presentation", so a screen reader landing on it (it grabs no focus and traps nothing, but the raw ASCII-art text nodes are in the accessibility tree) will read boot-log text and a keyboard hint that a non-sighted, non-keyboard (e.g. touch + VoiceOver on iOS) user has no way to act on.

How to trigger

Select the Lotus Terminal theme (or click "Replay boot sequence" in Settings → General) on a touch-only device or with a screen reader — no tap-to-skip control is exposed.

Suggested fix

Add a click/tap handler on the overlay (or a small visible "Skip" button) that calls dismiss(), and mark the decorative overlay aria-hidden="true" (or give the skip control an accessible role="button"/aria-label).


Filed from the September 2026 client audit (branch lotus @ 4bea4895).

**Severity:** low · **Type:** a11y · **Confidence:** high **Location:** `src/lotus-boot.ts:29-104` ### Problem `runLotusBootSequence` injects a full-viewport overlay (`z-index:10100`) directly into `document.body` (outside React) when the Lotus Terminal theme is selected. The only way to skip it early is the `Escape` key (`onKey` at line 82); the overlay element itself has no `onclick`/`onpointerdown` handler and `pointer-events` is left at its default (`auto`), so tapping/clicking the full-screen overlay on a touch device does nothing — mobile/touch users must wait out the full ~1.5–2s sequence. The overlay and its "`[ ESC ] skip`" hint also carry no `aria-hidden`/`role="presentation"`, so a screen reader landing on it (it grabs no focus and traps nothing, but the raw ASCII-art text nodes are in the accessibility tree) will read boot-log text and a keyboard hint that a non-sighted, non-keyboard (e.g. touch + VoiceOver on iOS) user has no way to act on. ### How to trigger Select the Lotus Terminal theme (or click "Replay boot sequence" in Settings → General) on a touch-only device or with a screen reader — no tap-to-skip control is exposed. ### Suggested fix Add a click/tap handler on the overlay (or a small visible "Skip" button) that calls `dismiss()`, and mark the decorative overlay `aria-hidden="true"` (or give the skip control an accessible `role="button"`/`aria-label`). --- _Filed from the September 2026 client audit (branch `lotus` @ 4bea4895)._
jared added this to the Audit 2026-09 · Medium & Low milestone 2026-09-12 01:51:34 -04:00
jared added the priority: lowa11yarea: appearance labels 2026-09-12 01:51:34 -04:00
jared self-assigned this 2026-09-12 01:51:34 -04:00
jared closed this issue 2026-09-12 20:29:06 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#86