You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is currently no durable cross-surface acceptance owner for the product-wide accessibility contract itself.
Goal
Define and enforce one accessibility acceptance matrix for the core writing experience while allowing renderer-specific implementation details to remain in their proper issues/adapters.
This issue is not a generic bug bucket. Concrete defects should still receive focused issues. This tracker owns shared acceptance/evidence and cross-surface parity.
Core user journeys
At minimum audit and test:
first launch / Welcome Portal;
open/create/import project;
project navigation/sidebar/binder;
editor writing/selection/formatting;
dialogs, menus, command palette and settings;
save/autosave/offline/recovery/update status;
character/world/outline/manuscript navigation;
export/backup flows;
AI/local-model state where status/action is user-visible;
collaboration/local-first state where enabled.
Keyboard and focus
Require deterministic keyboard-only operation for primary workflows:
logical tab order;
visible focus;
no keyboard traps;
Escape/close behavior;
focus restoration after dialogs, popovers, navigation and destructive-confirmation flows;
editor shortcuts do not consume navigation keys unexpectedly;
skip/navigation affordances where the shell benefits from them.
Focus behavior must be tested after asynchronous UI transitions, not only static render.
Screen-reader semantics
Audit:
landmark/navigation structure;
names/roles/values;
form labels/descriptions/errors;
dynamic save/recovery/offline/update/model status announcements;
dialogs and modal ownership;
editor semantics and selected/current state;
loading/progress/busy states;
tables/lists/trees where used;
icon-only controls.
Avoid duplicate live-region announcements and role="alert" overuse.
Visual/readability acceptance
Coordinate with #341 rather than duplicating its specific regression:
text/background contrast for supported themes;
placeholder/disabled/secondary text;
editor caret/selection/focus indicators;
forced/high-contrast modes where supported;
reduced transparency;
reduced motion;
zoom/text scaling;
font-size/line-height controls;
no content/action loss at large text/zoom.
Use deterministic contrast/readability oracles where possible, not screenshots alone.
Responsive / mobile / virtual keyboard
PWA-specific details remain in #478, but shared acceptance should include:
viewport resize without inaccessible hidden actions;
virtual keyboard/editor coexistence;
touch target sizing;
safe-area behavior;
orientation changes;
zoom without horizontal traps where avoidable.
Native / Qt admission
Do not start Qt implementation from this issue.
When Qt is admitted by the native roadmap, require the same semantic acceptance for:
keyboard/focus behavior;
accessible names/roles/states through Qt accessibility APIs;
screen-reader operation on supported desktop OSes;
high-contrast/system settings;
reduced-motion/system preference mapping where applicable.
Qt is allowed native implementation strengths; parity is behavioral, not DOM-equivalent markup.
Context
ROADMAP.mdincludes an Accessibility deep-dive in the v2.0 Foundation. Existing issues are more narrowly scoped:There is currently no durable cross-surface acceptance owner for the product-wide accessibility contract itself.
Goal
Define and enforce one accessibility acceptance matrix for the core writing experience while allowing renderer-specific implementation details to remain in their proper issues/adapters.
This issue is not a generic bug bucket. Concrete defects should still receive focused issues. This tracker owns shared acceptance/evidence and cross-surface parity.
Core user journeys
At minimum audit and test:
Keyboard and focus
Require deterministic keyboard-only operation for primary workflows:
Focus behavior must be tested after asynchronous UI transitions, not only static render.
Screen-reader semantics
Audit:
Avoid duplicate live-region announcements and
role="alert"overuse.Visual/readability acceptance
Coordinate with #341 rather than duplicating its specific regression:
Use deterministic contrast/readability oracles where possible, not screenshots alone.
Responsive / mobile / virtual keyboard
PWA-specific details remain in #478, but shared acceptance should include:
Native / Qt admission
Do not start Qt implementation from this issue.
When Qt is admitted by the native roadmap, require the same semantic acceptance for:
Qt is allowed native implementation strengths; parity is behavioral, not DOM-equivalent markup.
Automated and manual evidence
Use a layered evidence model:
Automated scanners are necessary but not sufficient for editor/screen-reader usability.
Acceptance criteria
Non-goals