1365bce5fSDerick Montague# Accessibility Conventions and Standards
2d96e90f3SDerick Montague
349287562SDerick MontagueIt is important that the OpenBMC Web UI meet accessibility guidelines
449287562SDerick Montagueestablished by the [World Wide Web Consortium (W3C)](https://www.w3.org/). These
5*7385e139SPatrick Williamsguidelines are known as the
6*7385e139SPatrick Williams[Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/WAI/standards-guidelines/wcag/).
7*7385e139SPatrick WilliamsMaking the Web UI accessible to as many users as possible is the right thing to
8*7385e139SPatrick Williamsdo. In many countries, it is also legally required. Organizations providing
9*7385e139SPatrick Williamsinterfaces that users with permanent or temporary disabilities can not use, may
10*7385e139SPatrick Williamslose sales or be susceptible to discriminatory lawsuits.
11d96e90f3SDerick Montague
12d96e90f3SDerick Montague## Accessibility Principles
13*7385e139SPatrick Williams
1449287562SDerick MontagueThese
1549287562SDerick Montague[principles](https://www.w3.org/WAI/fundamentals/accessibility-principles/)
16*7385e139SPatrick Williamsreference a set of international standards from the
17*7385e139SPatrick Williams[W3C Web Accessibility Intitiative (WAI)](https://www.w3.org/WAI/).
18d96e90f3SDerick Montague
19d96e90f3SDerick Montague- [Perceiveable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#perceivable)
20d96e90f3SDerick Montague- [Operable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#operable)
21d96e90f3SDerick Montague- [Understandable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#understandable)
22d96e90f3SDerick Montague- [Robust](https://www.w3.org/WAI/fundamentals/accessibility-principles/#robust)
23d96e90f3SDerick Montague
24d96e90f3SDerick Montague## Semantic HTML
25*7385e139SPatrick Williams
2649287562SDerick MontagueCoding the UI using semantic markup is the most important step in creating an
2749287562SDerick Montagueinclusive interface. The use of
2849287562SDerick Montague[WAI-ARIA](https://www.w3.org/WAI/standards-guidelines/aria/) can help make an
2949287562SDerick Montagueinterface accessible to assistive technologies. However, there are two critical
3049287562SDerick Montaguerules to follow:
31d96e90f3SDerick Montague
32d96e90f3SDerick Montague1. Always favor semantic markup over ARIA
33d96e90f3SDerick Montague2. No ARIA is better than Bad ARIA
34d96e90f3SDerick Montague
35d96e90f3SDerick Montague## Testing
36*7385e139SPatrick Williams
3749287562SDerick MontagueAssuring the Web UI meets accessibility guidelines requires a combination of
3849287562SDerick Montagueautomated and manual testing. Automated tests will test the application against
3949287562SDerick Montaguecommon problems such as color contrast and ARIA use. Automated testing can be
4049287562SDerick Montaguebuilt into the CI process, integrated with code editors, and run using browser
4149287562SDerick Montagueextensions.
42d96e90f3SDerick Montague
4349287562SDerick MontagueThe OpenBMC Web UI developers should test their development pages using one of
4449287562SDerick Montaguethe tools listed in the tools section below. If using Chrome, the Lighthouse
4549287562SDerick Montagueapplication comes bundled with the browser and also includes testing for
4649287562SDerick Montagueperformance and best practices. If there is an issue that is created when using
47*7385e139SPatrick Williamsa Bootstrap-Vue component, we can
48*7385e139SPatrick Williams[create an issue in the Bootstrap-vue repo](https://github.com/bootstrap-vue/bootstrap-vue/issues/new/choose).
4949287562SDerick MontagueContributing to the Bootstrap-Vue open-source library, when possible, is
5049287562SDerick Montaguestrongly encouraged.
51d96e90f3SDerick Montague
52d96e90f3SDerick Montague## Tools
53*7385e139SPatrick Williams
54d96e90f3SDerick Montague- [Deque Axe](https://www.deque.com/axe/)
55*7385e139SPatrick Williams- [Firefox Accessibility Inspector](https://developer.mozilla.org/en-US/docs/Tools/Accessibility_inspector)
566e4773afSDerick Montague- [IBM Accessibility Tools](https://www.ibm.com/able/toolkit/tools)
57d96e90f3SDerick Montague- [Lighthouse](https://developers.google.com/web/tools/lighthouse)
58d96e90f3SDerick Montague
59d96e90f3SDerick Montague## Screen Readers
60*7385e139SPatrick Williams
61d96e90f3SDerick Montague- [Jaws - (Windows only)](https://webaim.org/articles/jaws/)
62*7385e139SPatrick Williams- [Narrator - (Windows only)](https://support.microsoft.com/en-us/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1)
633ec4c049SDerick Montague- [NVDA (Windows only)](https://webaim.org/articles/nvda/)
643ec4c049SDerick Montague- [Voiceover (Mac only)](https://webaim.org/articles/voiceover/)
65d96e90f3SDerick Montague
66d96e90f3SDerick Montague## Resources
67*7385e139SPatrick Williams
68*7385e139SPatrick Williams- [Mozilla Developer Network - Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
69*7385e139SPatrick Williams- [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/WAI/standards-guidelines/wcag/)
70d96e90f3SDerick Montague- [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices/)
71*7385e139SPatrick Williams- [WAI-ARIA Basics](https://developer.mozilla.org/en-US/docs/Learn/Accessibility/WAI-ARIA_basics)
72d96e90f3SDerick Montague- [WebAIM Articles](https://webaim.org/articles/)
73d96e90f3SDerick Montague- [A11Y Project](https://a11yproject.com/)
746e4773afSDerick Montague- [IBM Accessibility](https://www.ibm.com/able/)
75d96e90f3SDerick Montague- [Inclusive Components](https://inclusive-components.design/)
76