← The board

G3 Accessibility

Area
G — Cross-cutting UX
Audience
both
Kind
feature
Status
accepted
Maturity
building
Labels
ux
Relates to
B3B4G1G4

The feature in the specification · Read at

Requirements

  1. G3-R1acceptedMUST

    No state MAY be conveyed by colour alone; a symbol or text MUST also carry it.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/logs.rs
    recorded partial
    lemonfiber-companionapp-modules/design/src/View/Tone.phpapp-modules/design/tests/View/ToneTest.phptests/Arch/NoClassDecidedAtRuntimeTest.php
    recorded partial
    lemonfiber-websrc/components/StateTag.sveltesrc/components/StateTag.test.ts
    cited by
    lemonfiber-web@753c03f17b
  2. G3-R2acceptedMUST

    NO_COLOR MUST be honoured, and output MUST remain fully comprehensible without colour.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/logs.rs
    cited by
    lemonfiber@f9289559f8
  3. G3-R3acceptedMUST

    The web UI MUST meet WCAG 2.2 AA for contrast, keyboard operability, focus visibility and text alternatives.

    locked by
    0.9.0 unmarked
    recorded partial
    lemonfiber-webscripts/a11y.mjs
    cited by
    lemonfiber-web@0a0b9aecd7lemonfiber-web@d9a4cbb419lemonfiber-web@8f5b1c1ce6lemonfiber-web@e0d3fbb4dalemonfiber-web@753c03f17b
  4. G3-R4acceptedMUST

    All functionality MUST be operable by keyboard alone, with visible focus and no keyboard traps.

    locked by
    0.9.0 unmarked
    recorded partial
    lemonfiber-webscripts/a11y.mjsscripts/guards.mjs
    cited by
    lemonfiber@52df3c9445lemonfiber-web@01cf264846lemonfiber-web@d9a4cbb419lemonfiber-web@8f5b1c1ce6lemonfiber-web@39dee4a51blemonfiber-web@a4517acfd6lemonfiber-web@8ee388a41elemonfiber-web@1714633318lemonfiber-web@753c03f17b
  5. G3-R5acceptedMUST

    prefers-reduced-motion MUST be honoured in the web UI.

    locked by
    0.9.0 met
    recorded done
    lemonfiber-websrc/components/Skeleton.svelte::prefers-reduced-motionsrc/components/Switch.svelte::prefers-reduced-motion
    cited by
    lemonfiber-web@1f36c1958c
  6. G3-R6acceptedMAY

    Nothing MAY flash or blink.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/tests/architecture/modest_terminal.rs
    recorded partial
    lemonfiber-companiontests/Templates/NothingAScreenDoesToItsReaderTest.php
    cited by
    lemonfiber-web@1f36c1958c
  7. G3-R7acceptedMUST

    Redirected or piped output MUST contain no control sequences and no repeated progress lines.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/tests/integration/piped.rscrates/lemonfiber-core/src/walkthrough/run/walk.rs
    cited by
    lemonfiber@2bafc6ba92
  8. G3-R8acceptedMUST

    Layout MUST adapt to narrow terminals and small viewports without horizontal scrolling.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/text.rs
    recorded partial
    lemonfiber-companiontests/Templates/NothingAScreenDoesToItsReaderTest.php
    cited by
    lemonfiber@a19e2b732blemonfiber@7f889c755dlemonfiber@9a14647cb6lemonfiber-web@d9a4cbb419lemonfiber-web@1f36c1958c
  9. G3-R9acceptedMUST

    Unicode symbols MUST fall back to ASCII where unsupported.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/say.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/keyboard.rs
    cited by
    lemonfiber@3a6c259b4dlemonfiber@5b740a7e2dlemonfiber@21620fe5bclemonfiber@1d7385cf30
  10. G3-R10acceptedMUST

    Values MUST NOT be truncated in a way that changes their meaning.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/text.rscrates/lemonfiber-core/src/endpoint.rs
    recorded partial
    lemonfiber-companiontests/Contract/SayingContractTest.php
    cited by
    lemonfiber@d7afa74939lemonfiber@9787366c10lemonfiber@946707934alemonfiber@19e4b0ebed
  11. G3-R11acceptedMUST

    Long-running operations MUST emit periodic textual progress.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/engine.rscrates/lemonfiber-ports/src/narration.rs
    cited by
    lemonfiber@8670d5beeelemonfiber@e24e708c7e
  12. G3-R12acceptedMUST

    Timeouts on prompts MUST be generous, stated, and extendable, or absent.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/tests/integration/prompting.rs
    cited by
    lemonfiber@2bafc6ba92
  13. G3-R13acceptedMUST

    The web UI MUST respect browser text sizing and system high-contrast preferences.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/tests/fixtures/frontend/assets/app.css
    recorded done
    lemonfiber-websrc/app.css::forced-colorsscripts/guards.mjs::state it in rem
    cited by
    lemonfiber-web@7317d93089lemonfiber-web@98154305b1
  14. G3-R14acceptedMUST

    Severity in log output MUST be present as text, not only as colour.

    locked by
    0.9.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/logs/draw.rs
    recorded partial
    lemonfiber-companiontests/Arch/NoClassDecidedAtRuntimeTest.php
    cited by
    lemonfiber@2bafc6ba92
  15. G3-R15acceptedMUST

    Text the product did not author MUST NOT be able to alter terminal state, on any surface that shows it.

    locked by
    0.10.0 met
    recorded done
    lemonfibercrates/lemonfiber/src/say.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/keyboard.rscrates/lemonfiber-core/src/text.rs
    recorded partial
    lemonfiber-companiontests/Templates/NothingAStackSaidCanRedrawAScreenTest.php
    cited by
    lemonfiber@8254d2b85alemonfiber@a2fc9846b3lemonfiber@afe3a6b2f8
  16. G3-R16acceptedMUST

    On a surface operated by touch, every control MUST present a target at least as large as the platform's own stated minimum — 44 points on iOS, 48 density-independent pixels on Android — measured on what responds to a touch rather than on what is drawn inside it. A control whose drawn extent is smaller MUST have its target enlarged around it rather than its text made larger.

    locked by
    no version locks it yet
    recorded partial
    lemonfiber-companiontests/Templates/EveryTargetIsBigEnoughToHitTest.php
  17. G3-R17acceptedMUST

    On a surface whose navigation between sections stays on screen, the section being shown MUST be the one marked as current, to sight and to assistive technology alike, and no other section MAY be marked; a screen reached from more than one section MUST be marked as the section whose subject it is.

    locked by
    no version locks it yet
    recorded partial
    lemonfiber-websrc/routes/Shell.sveltesrc/routes/Shell.test.ts::marks one place and no more