Accessibility
ForgeOS should be operable by everyone who owns software.
What is tested, what is known to be true, and what has not been checked.
The standard
WCAG 2.2 AA is the target.
Not a claim of full conformance. Below is what is actually verified on every change, and what is not.
Checked automatically, on every change
What is tested.
| Check | What it asserts |
|---|---|
| Skip link | The first Tab on every page reaches a visible skip link, and it moves focus into the main region. |
| Landmarks and headings | Every page has a labelled main region, and every region labelled by an id has that id. |
| Labels | Every form control has a label bound to it. No page repeats an id. |
| Focus visibility | A visible focus indicator is defined and not removed anywhere. |
| Reflow | No page scrolls horizontally at 390px. Wide tables and code scroll inside their own container. |
| Target size | Standalone controls are at least 44px. Links inside a sentence are exempt, as WCAG 2.5.8 allows. |
| Reduced motion | Animation is disabled under prefers-reduced-motion. |
| Forced colours | Borders and state indicators survive a forced-colours mode rather than disappearing. |
| Every page has a print layout that drops navigation and keeps content. | |
| Live regions | State changes — a decision arriving, a message recorded — are announced, and a background refresh never talks over them. |
Parity
A phone is not a reduced client.
Nothing is dropped at a phone’s width, but some things move. The chat keeps its thread and composer, and its list of goals and projects becomes a drawer opened from the top bar. Mission Control’s sidebar becomes a bottom bar with the same three entries — Chat, Connections and Settings — and it opens on Connections, where your repositories, model providers and connected services are listed; your goals and anything waiting on you live in the chat. The complete owner journey is driven on a 390px viewport in the test suite: create a goal, discuss it, read its history, receive a decision and answer it.
The message box looks the same at every width. Attaching a file and the Auto setting — whether a plan starts by itself or waits for your approval — both live in the “+” menu beside the message box, a 44-pixel button with its full name for a screen reader, so a phone reaches them exactly as a desktop does. There is no project chip at any width any more — a conversation is its project, so a message builds in the project of the conversation it is typed into, and a project is opened by tapping it in the drawer. Beyond that, no action in ForgeOS is desktop-only. If you find one, it is a defect — tell us and it will be treated as one.
Not verified
What has not been checked.
The honest gaps, listed because their absence is what misleads.
No screen reader testing with users
Semantics are asserted programmatically; nobody has yet run the product with a screen reader and reported back.
No independent audit
No third party has assessed conformance. Everything on this page is our own testing.
No formal conformance claim
We do not publish a VPAT, because producing one honestly requires the audit above.
Cognitive and plain-language review
The product avoids internal jargon, but that has not been tested with the people who would benefit most.
The viewport journey needs a real browser
The narrow-phone journey under Parity drives a real browser, so it runs where one is available and is recorded as not run where one is not — a check that could not run is never counted as a check that passed.
Something here blocked you?
An accessibility barrier is a defect, not a feature request. Tell us what stopped you, and we will fix it.