Universal Access (Accessibility) - cockpit-project/cockpit GitHub Wiki

Terms:

  • Accessibility: being able to access something (implies disability)
  • Universal Access: making sure everyone can use something (inclusive of all)
  • Inclusive design: designing to covere the needs for everyone, keeping in mind any special situational, temporary, or permament accomodations

Cockpit-related accessibility documents

Resources

Introduction

Cheat sheet

  • ARIA Authoring Practices: A "cheat-sheet" reference to make sure widgets (both built-in and custom-made) are accessible.

Articles

Organizations

  • The A11Y Project: A community-driven effort to make web accessibility easier
  • WebAIM: Non-profit to help make the web more accessible

Screenreader survey results

Section 508

Section 508 is law in the USA, to ensure everyone can use something.

Testing

HTML-specific resources

  • Tabindex
    • summary: use 0 or -1, but nothing higher
  • Skip link

ARIA

ARIA stands for Accessible Rich Internet Applications.

  • ARIA @ MDN
  • "First rule of ARIA club" is to not use ARIA, unless there's no other way (that is: if there's a semantic element that provides the feature, use that instead โ€” it's much prefered and simpler than marking up everything with ARIA)
  • Landmarks
  • Articles
    • Landmarks: HTML5 vs. ARIA
    • AIRA tabs (danger!)
    • Donโ€™t Use ARIA Menu Roles for Site Nav
      • "A properly-coded web page navigation menu needs no ARIA. Once you add ARIA, however, you have put yourself on the hook to handle some complex interactions."
      • "Somehow many developers have come to the conclusion that a web page is inaccessible unless it uses ARIA. This is a combination of patterns that do not use semantic HTML, a misunderstanding of ARIA, and not having practical experience with assistive technology."
      • "Tutorials often get it wrong, such as the always useless W3 Schools in its Bootstrap documentation. Not that Bootstrap is off the hook, given that its 2.x documentation recommended menu roles and I still see that code copy-pasted into projects today."

React

Testing framework

React-specific a11y testing

  • eslint-plugin-jsx-a11y: Static AST checker for a11y rules on JSX elements
  • react-axe: Accessibility auditing for React.js applications
  • react-a11y: Identifies accessibility issues in your React.js elements
  • axe-webdriverjs: Provides a chainable aXe API for Selenium's WebDriverJS and automatically injects into all frames

Browser add-ons

Desktop screen reader

  • Orca is included in GNOME
    • speech-dispatcher-flite adds a better voice for Orca (which is used once it's selected)
    • orca -s lets you configure Orca, including the voice used

Web screen reader

  • Epiphany (GNOME-Web) can use Orca
  • Chrome has a plugin called ChromeVox