Accessibility - sgml/signature GitHub Wiki

Accessibility Specific Bugs

1. Focus Management Failures

  • Description: Improper or missing focus transitions between interactive elements.
  • Examples:
    • Modal dialogs that donโ€™t trap focus.
    • Focus lost to non-visible or non-interactive elements.
  • Impact: Breaks tab navigation, impairs screen reader workflows, and violates WCAG 2.1 guidelines.

2. Key Event Handling Ambiguities

  • Description: Inconsistent or missing handling of keydown/keyup/keypress events.
  • Examples:
    • Enter key not submitting forms.
    • Arrow keys failing to navigate dropdowns or menus.
  • Impact: Functional breakage for keyboard-only users; often missed in mouse-centric QA.

3. Accesskey and Shortcut Collisions

  • Description: Conflicts between custom keyboard shortcuts and browser/system-level shortcuts.
  • Examples:
    • Alt+S triggering both browser save and site-specific action.
  • Impact: Unpredictable behavior, especially across platforms and locales.

4. Tabindex Misuse or Neglect

  • Description: Incorrect use of tabindex values or missing tabindex on custom widgets.
  • Examples:
    • tabindex="-1" on interactive elements.
    • Non-sequential tab order due to manual overrides.
  • Impact: Navigation confusion, accessibility violations, and user frustration.

5. Hidden or Offscreen Interactive Elements

  • Description: Elements that are visually hidden but still focusable.
  • Examples:
    • Offscreen buttons receiving focus.
    • CSS visibility: hidden vs display: none inconsistencies.
  • Impact: Traps focus, breaks expected navigation flow, and confuses assistive tech.

6. Keyboard Trap Conditions

  • Description: Scenarios where users cannot escape a component using keyboard alone.
  • Examples:
    • Custom dropdowns or modals without Escape key support.
  • Impact: Lock-in behavior, especially problematic for screen reader users.

7. Form Submission and Validation Edge Cases

  • Description: Keyboard-only form submission paths not triggering validation or JS hooks.
  • Examples:
    • Pressing Enter bypasses client-side validation.
  • Impact: Data integrity issues, inconsistent UX, and security bypasses.

8. Platform-Specific Key Mapping Bugs

  • Description: Inconsistent behavior across OS/browser combinations.
  • Examples:
    • Meta key on macOS vs Ctrl on Windows.
  • Impact: Breaks cross-platform consistency; often missed in monoculture testing environments.

DevOps Tools

https://kb.iu.edu/d/atey

https://bolonio.medium.com/automating-the-accessibility-tests-of-your-source-code-with-github-actions-63590cdc6860

OSX

Implement the contract of the role-specific protocol (NSAccessibilityButton, NSAccessibilityImage, NSAccessibilityGroup, etc) within the NSAccessibility protocol that best matches the behavior of the GUI element being rendered.

Linux / BSD

For GNOME applications, the GNOME Accessibility Implementation Library (GAIL) bridges GNOME widgets and the Accessibility Toolkit (ATK). ATK bridges to the Assistive Technology Service Provider Interface (AT-SPI). AT-SPI is currently used by GTK2, Java and OpenOffice.

Windows

Microsoft Windows SDK includes all the tools necessary for MSAA and/or UI Automation. The IAccessibleEx interface the bridges between the two worlds.

Browser Devtools

Consoles

Chrome OS

http://www.chromevox.com/next_keyboard_shortcuts.html

https://www.perkinselearning.org/technology/blog/my-experiences-chromebook

https://medium.com/@sheribyrnehaber/handling-accessibility-demand-letters-a10107566e3e

https://medium.com/@sheribyrnehaber/this-week-in-accessibility-gomez-v-gnc-89fee5f26b5f

Focus

https://boom-bath.glitch.me/tabindex.html

Semantics

https://blog.hubspot.com/website/how-to-bold-in-html

https://www.tempertemper.net/blog/bold-and-italics-arent-read-by-screen-readers

Captions

Transcripts

https://oit.colorado.edu/tutorial/captioning-making-captions-transcripts-youtube

https://support.google.com/youtube/answer/2734799?hl=en

https://knowbility.org/blog/2022/open-web-pioneer-molly-holzschlag-to-keynote-accessu

https://meryl.net/molly-e-holzschlag/

WCAG Techniques

https://www.w3.org/WAI/GL/WCAG20/TECHS-SUBMIT/

Courses

https://www.edx.org/course/web-accessibility-introduction

References

https://webaim.org/techniques/keyboard/

https://www.deque.com/blog/accessible-focus-indicators/

https://developer.paciellogroup.com/blog/2012/04/how-to-remove-css-outlines-in-an-accessible-manner/

https://a11yproject.com/posts/never-remove-css-outlines/

http://www.outlinenone.com/

blog

https://coolblindtech.com/

https://blogs.microsoft.com/accessibility/

vendors

http://teachingcommons.cdl.edu/access/procurement_process/demonstration.shtml

aria-live

http://whatsock.com/training/#hd24

https://cccaccessibility.org/web/web-developer-tutorials/using-aria-live

https://bitsofco.de/using-aria-live/

https://www.w3.org/TR/WCAG20-TECHS/ARIA19.html

aria + IDs

https://developers.google.com/web/fundamentals/accessibility/semantics-aria/aria-labels-and-relationships

https://developer.salesforce.com/blogs/2018/01/promote-equality-building-accessible-content.html

https://vuejs.org/guide/best-practices/accessibility.html#semantic-forms

Forms

NVDA

Tables

Icons

  • Add role="img" to read an aria-label attached to a visual icon

Accessibility Object Model (AOM)

Spec

Bugs

Accesskey

Tools