Accessibility

Accessibility at Codex

Codex's web client has a skip link, labeled form controls, a labeled Markdown editor, and a light and dark theme, and no page overflows sideways at 375 pixels. An axe-core run over every captured view still found violations in all of them, mostly color contrast, and we list them below instead of hiding them. We do not claim a WCAG level.

Illustration: a quiet public reading room in soft light, with a wide level entrance, a low service counter, and clear open aisles between the shelves.
The product

What Codex supports today

Each line says what the product does, how we know, and where to look. “Not yet tested” means exactly that: we have not checked, and we do not claim it.

  • Partly supported

    Keyboard operation

    The client has a skip link to the main content, native buttons, links, and form controls, and the update dialog closes on Escape. No keyboard-only walkthrough of any flow has been recorded, and the history page nests a Restore button inside another button, which axe flags.

    Evidence

    • frontend/src/components/shared/Layout.tsx in the Codex repo: the Skip to main content link
    • frontend/src/components/VersionChecker.tsx: the update dialog takes focus and closes on Escape
    • screenshots/output/codex/a11y.json: nested-interactive (serious) on the two history runs
  • Partly supported

    Screen reader landmarks and labels

    Search, the editor, the page title field, the star button, the sidebar toggle, and the member form carry accessible names, and one axe test passes on the root screen. The harness run found missing landmarks and headings on some views, and nothing has been tested with a screen reader.

    Evidence

    • frontend/src/pages/PageEditor.tsx and SearchResults.tsx: aria-label on the title, Markdown, and search fields
    • frontend/src/__tests__/a11y.test.tsx: vitest-axe on the root screen with no data, expecting no violations
    • screenshots/output/codex/a11y.json: landmark-one-main on all 14 runs, region on all 14, page-has-heading-one on the two editor runs
  • Partly supported

    Contrast in light and dark

    Axe still flags color-contrast, a serious violation, on 145 elements across all 14 desktop runs, mostly muted text and accent-colored labels on tinted backgrounds.

    Evidence

    • screenshots/output/codex/a11y.json: axe-core 4.11.4 at 1920 by 1200, 7 views in light and dark; color-contrast on 145 elements in 14 of 14 runs
    • frontend/src/styles/global.css sets --brand-accent separately for light and dark
  • Partly supported

    Reduced motion

    A prefers-reduced-motion rule covers the update dialog's animation. No other motion in the client has a rule, and no test exercises reduced motion.

    Evidence

    • frontend/src/components/VersionChecker.module.css: the prefers-reduced-motion rule
  • Not yet tested

    Text resize and zoom

    Resizing text to 200 percent has not been tested.

  • Partly supported

    Mobile and touch

    Seven views fit a 375 by 667 phone screen with no sideways scrolling in both themes. The same run found color-contrast and two scrollable regions that a keyboard cannot focus, and tap-target size was not measured.

    Evidence

    • screenshots/output/codex/mobile.json: 7 views in light and dark at 375 by 667, 14 runs, no horizontal overflow in any

No WCAG conformance level is claimed for Codex. Its own accessibility test is a single axe-core smoke test of the root screen with no data loaded. No one has audited it against WCAG or tested it with a screen reader, and the harness axe-core runs listed here find violations.

Known gaps

What does not work yet

  • axe-core 4.11.4 on the seven captured views in light and dark (14 runs at 1920 by 1200) found color-contrast (serious) on 145 elements in 14 runs, landmark-one-main (moderate) on 14 runs, region (moderate) on 122 elements in 14 runs, page-has-heading-one (moderate) on the two editor runs, nested-interactive (serious) on the two history runs, and empty-table-header (minor) on the two settings runs. None of these is fixed.
  • At 375 by 667 (7 views, 14 runs) there is no horizontal overflow, but axe also flags scrollable-region-focusable (serious) on the editor and history views, where a scrolling pane cannot take keyboard focus, along with the same color-contrast (39 elements), landmark, region, page-has-heading-one (editor), nested-interactive (history), and empty-table-header (settings) findings.
  • Codex has not been tested with a screen reader, and 200 percent text resize is untested.
  • Its one in-repo axe test renders the root screen with an empty wiki, so it cannot see any of the findings above, and jsdom cannot evaluate color.
This website

How this site is built and checked

This site targets WCAG 2.2 level AA. That is a target we build and test toward, not a certification, and no one has audited it for conformance.

  • Structure

    A skip link, labeled landmarks (header, navigation, main, footer), one h1 per page, and headings that do not skip levels.

  • Keyboard and focus

    Links and buttons are native elements, so they work from the keyboard. Focus is drawn as a visible ring, and the menu closes with Escape.

  • Contrast

    Text meets 4.5 to 1 in both the light and dark themes, checked against the stylesheet by the test suite.

  • Motion

    Transitions and animation switch off when your system asks for reduced motion.

  • Small screens and zoom

    Layouts hold at 375 pixels wide with no sideways scrolling, text resizes with the browser, and touch targets are at least 44 pixels.

  • Automated scan

    Every page is scanned with axe-core at 375 and 1440 pixels in light and dark, and the checks fail on any serious or critical violation. Automated tools find only part of the problems, so this is a floor, not proof.

  • Images

    Every product screenshot has a text description and comes in a light and a dark version that follows your theme.

  • Your theme choice

    The theme follows your system setting until you pick one with the button in the header.

Feedback

Tell us what is in your way

If something here or in Codex does not work for you, write to Renkara Media Group. Say what you were doing, what you used, and what happened, and a person will answer.

Statement last reviewed 10/29/2026.