Skip to content

Complete accessibility, reflow, and adaptive appearance gates #22

Description

@robinbraemer

Outcome

Make the composer and running interface understandable and operable with keyboard, assistive technology, zoom, text scaling, reduced motion, compact touch layouts, and every supported appearance throughout the real live-editing journey.

Required behavior

  • Keep the primary composer, running canvas, Undo, history, and recovery route reachable in every state and viewport.
  • Announce agent progress, tool activity, build status, selected element, applied change, cancellation, capability request, and recovery status without overwhelming assistive technology.
  • Preserve logical focus and reading position while the canvas updates, selection overlays appear, history opens, errors occur, or a capability decision is requested.
  • Provide a keyboard and assistive-technology alternative for every direct-manipulation action in Add element selection and direct manipulation for targeted UI edits #35.
  • Ensure the selection overlay does not intercept app interaction unintentionally and exposes semantic target information without duplicating the full app tree.
  • Support 320 CSS px, 200% zoom, text scaling, reflow, forced colors where available, and no unintended horizontal page scrolling.
  • Provide deliberate light and dark appearances using the same semantic token and contrast contract.
  • Respect reduced motion without removing progress, selection, success, error, or recovery feedback.
  • Keep protected capability and recovery controls distinguishable from content created by the agent.

Acceptance criteria

  • Automated WCAG 2.2 AA checks run on clean workspace, agent-active, streaming, selected-element, direct-manipulation, build-failure, history, capability-request, offline, and recovery states.
  • Recorded keyboard-only and macOS VoiceOver walkthroughs complete the end-to-end journey in [Epic] Prove the Flect 1.0 product experience end to end #17.
  • A keyboard or screen-reader user can select an element, request a targeted edit, Undo it, restore history, recover from a failed build, and return focus to the running app.
  • Production Chromium covers 320 px width, 200% zoom, increased text, forced colors where supported, reduced motion, high contrast, and both supported appearances.
  • Every interactive component has appropriate default, hover, focus, active, disabled, loading, and error behavior.
  • Dynamic announcements are deduplicated and tested against long agent/tool streams.
  • User-created UI cannot obscure or imitate protected capability, history, or recovery controls.
  • Visual review confirms the shell remains calm and first-party without accessibility-only duplicate workflows.
  • No test or screen requires Shape/Use, Keep/Reject, candidate, safe-mode, or internal-agent terminology.

Non-goals

  • Encoding meaning only through animation, color, or pointer hover.
  • Claiming accessibility from automated audits alone.
  • Forcing user projects to adopt Flect visual styling outside protected controls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:P1Next after the core live-editing loop is provenstatus:external-gateImplementation is locally complete; closure requires credentials, hardware, review, or publication

    Type

    No type

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions