Skip to content

Use cases

Alice edited this page May 12, 2016 · 4 revisions

Guidelines

Prioritise solving problems which can't be solved today. But must be polyfillable - don't want to create -webkit-foo like dependency

V1 critical

  • Replace IDREF DOM content attribute associations with a JavaScript element reference [V1!! Highlight]
  • Debugging/testing [V1 highlight]
    • Exploring accessibility of your own site [V1]
    • Cross-browser, cross-platform automated testing [V1]
      • Integration with WebDriver
    • Debugging/understanding accessibility tree issues [V1]
      • Discoverability in the inspector/devtools e.g. console.log()
  • Accessible input events [V1]
    • increment, decrement, dismiss, defaultaction, etc.
  • Tree rearrangement [V1]
    • cf. aria-owns
  • Consistency with ARIA [V1 mandatory]
  • Support for ARIA 1.1 [V1 for shipped (2+ implementations) parts]
  • Don't regress users' security/privacy [V1]

V1 critical Demos

  • Slider [V1 featured]
    • increment / decrement actions
  • Canvas [V1]
    • virtual tree
    • position
  • Web components [V1 featured/critical]
    • IDREF can't cross shadow DOM boundaries
    • Leaking attributes is painful

V1 nice to have/falls out

  • Create virtual accessibility trees [V1 probably, possibly partial]
    • Canvas
  • Accessibility notifications [V1 non-critical]
    • Screen changed
    • Text announcement
  • Focus management for virtual elements [V1 - needs to be better specified]
    • cf. aria-activedescendant
    • cf. focus() method
  • Lazily compute accessibility information [V1 non-critical - privacy]
    • has privacy implications
  • Feature detection [V1 - falls out]
    • Determine whether a role is supported
  • Helps fix bad authoring [V1 non-critical/negotiable]
    • Strong typing [nice to have]
    • Type hierarchy [nice to have]
    • Enforce vocabulary
      • Don't allow setting nonsensical values for limited vocabulary
      • Throw warnings for bad values
  • Override position for existing element [V1 nice to have]

V1 non-critical demos

  • WebGL - TODO functional example (rubik's cube?) [V1][pending good example]
    • virtual tree
  • WebAssembly virtual machine [V1 stretch]
    • virtual tree
  • PDF reader [V1 stretch]
    • virtual tree
  • Maps [partial defer]
    • POIs [V1]
    • Vectors [DEFER]
  • Correct bounds computation quirks [V1 nice to have/falls out]
    • e.g. descendant positioned offscreen
  • Dismiss pop-up user input action/event on mobile [V1 nice to have]
  • "Magic tap" - top level default action [V1 nice to have]
    • e.g. "take photo", "hang up call"
    • TBD for other platforms?

Potential future scope

  • Extensibility
    • Custom actions
      • "next page"
    • Custom query
      • find all headings
    • Custom role
      • standard role + role description? cf. epub
      • defined in a taxonomy
      • polyfillable
    • Need to strike balance between extensibility and chaos
  • Text selection [DEFER]
  • Support for unimplemented/draft attributes [DEFER]
  • Additive Behaviors (aka control patterns, delegate protocols, behavioral mixins, etc) [DEFER]
    • "act like a button"
  • Infographics with accessible vector bounds [DEFER]
  • Chrome remote desktop [DEFER]
    • Serialize virtual tree queried from remote desktop and expose in browser
  • Slideshow software (Google Slides) [DEFER]
    • position information
    • Next/previous slide action/intent
  • Drag and drop [DEFER]
    • drop targets
    • dragging state
    • may be better scoped to HTML
  • Virtual grid [DEFER]
    • Same "current cell" DOM input element now represents different virtual element
    • Need some kind of change notification, new attributes
  • Sticky headers (e.g. for spreadsheets) [V1 featured]
    • end up needing two tables

Non-goals

  • Explain/replace tabindex