ARIA N U
Today
-
Talk about A11y
-
Learn about A11y Standards and Testing
-
Learn about how this relates to Open MCT
-
How it relates to e2e testing
-
Go forward steps
My Background
-
Worked on a enterprise web app when pizzagate happened
-
The cheapest path for us was to hire an independent company to audit our application and give us the reports for us to fix. It was only like $4,000
-
I worked with the accessibility department at Red hat to ensure that our application met accessibility standards.
-
There was an entire team and working group dedicated to this.
Pizzagate
-
In the world’s largest liberal hippy commune AKA State of California
-
Case effectively mandates that existing handicap ADA laws apply to websites
-
Specifically referenced the WCAG2.0 standard as the requirement that was not met
-
This case is still ongoing, and is likely only going to result in more specific laws and standardization.
Why Should We Care?
- Jamie
-
Even if VIPER doesn’t ultimately meet an accessibility standard, any web application you work on will likely have this requirement
-
Federal Accessibility standard is likely coming
-
We have a unique need in our end-to-end testing.
Standards?
-
There are rapidly evolving standards that are firming up with enough tooling to take seriously
-
WCAG 2.1 AAA and AA
-
Contrast and legibility of text
-
Some “general” design patterns specifically associated with screen reader technologies
-
Accessibility requirements for the application to be considered usable (ARIA)
-
Keyboard navigation
How to Use or Test
-
Voice over or JAWS
-
Lighthouse
-
Axe / WAVE
-
Note: No totally authoritative automated testing suite which ensures conformance and compliance to the WCAG specification.
How is Open MCT Doin'
-
Voice over on macOS
-
WAVE
-
Lighthouse
Why Now?
-
Nikhil and I started looking at this for the Forms refactor and didn’t get anywhere
-
Playwright added native role locators.
-
Global Search PR was first ernest attempt
-
e2e Black Box and the three paths in front of us
e2e needs
e2e needs
-
e2e tests need an abstraction away from classes or raw implementation which allows us to test that it improves (or regresses over time)
-
https://github.com/nasa/openmct/pull/5203/files
-
https://github.com/nasa/openmct/pull/5256/files#diff-aeb7f9545916699de8768f88ebf461170ec77bb289a85b096a24a621a41aa043
3 paths
- Page Object Pattern
- Lots of overhead. You effectively create a terrible clone of the application which is inflexible and out of sync
- Test IDs
-
Allow BDD-like syntax on the application
-
Invisible to the application -- only the tests need it
-
Give the abstraction we need!
-
- ARIA
-
Allow BDD-like syntax for the application
-
Give the abstraction we need
-
Actually benefits someone other than the e2e tests
-
This is what Google is using in their new automated scripting performance testing framework
-
I thought this was about ARIA?
Resources
- MDN
- Examples https://www.w3.org/WAI/WCAG21/working-examples/aria-label-invisible-label-box/#box
- Google Search
ARIA Order
- Bad ARIA is worse than no ARIA... only for screen readers
- i.e. Don't need to use 'button' on a ARIA Label. Otherwise you get 'Create Button Button'
- Use HTML 5.2 semantics.
- Check MDN Site for ARIA Roles. Some are deprecated
- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/input_role
ARIA Order 2
- Check existing labels with DevTools Accessibility Tree tab
- ARIA Label vs ARIA Labelled By
ARIA Description- Then validate in playwright codegen
Go Forward
-
Let's focus on iteratively learning about this as a team.
-
Let's focus on the end-to-end test first
-
Share what we learn about this in code reviews
-
When writing and end test, if it's obvious that the locator is extremely brittle or tied to an implementation, it would be a great opportunity to implement some accessibility
ARIA N U
By John Hill
ARIA N U
- 320