1365bce5fSDerick Montague# Accessibility Conventions and Standards
2d96e90f3SDerick Montague
3d96e90f3SDerick MontagueIt is important that the OpenBMC Web UI meet accessibility guidelines established by the [World Wide Web Consortium (W3C)](https://www.w3.org/). These guidelines are known as the [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/WAI/standards-guidelines/wcag/). Making the Web UI accessible to as many users as possible is the right thing to do. In many countries, it is also legally required. Organizations providing interfaces that users with permanent or temporary disabilities can not use, may lose sales or be susceptible to discriminatory lawsuits.
4d96e90f3SDerick Montague
5d96e90f3SDerick Montague## Accessibility Principles
6d96e90f3SDerick MontagueThese [principles](https://www.w3.org/WAI/fundamentals/accessibility-principles/) reference a set of international standards from the [W3C Web Accessibility Intitiative (WAI)](https://www.w3.org/WAI/).
7d96e90f3SDerick Montague
8d96e90f3SDerick Montague- [Perceiveable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#perceivable)
9d96e90f3SDerick Montague- [Operable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#operable)
10d96e90f3SDerick Montague- [Understandable](https://www.w3.org/WAI/fundamentals/accessibility-principles/#understandable)
11d96e90f3SDerick Montague- [Robust](https://www.w3.org/WAI/fundamentals/accessibility-principles/#robust)
12d96e90f3SDerick Montague
13d96e90f3SDerick Montague## Semantic HTML
14d96e90f3SDerick MontagueCoding the UI using semantic markup is the most important step in creating an inclusive interface. The use of [WAI-ARIA](https://www.w3.org/WAI/standards-guidelines/aria/) can help make an interface accessible to assistive technologies. However, there are two critical rules to follow:
15d96e90f3SDerick Montague
16d96e90f3SDerick Montague1. Always favor semantic markup over ARIA
17d96e90f3SDerick Montague2. No ARIA is better than Bad ARIA
18d96e90f3SDerick Montague
19d96e90f3SDerick Montague## Testing
20d96e90f3SDerick MontagueAssuring the Web UI meets accessibility guidelines requires a combination of automated and manual testing. Automated tests will test the application against common problems such as color contrast and ARIA use. Automated testing can be built into the CI process, integrated with code editors, and run using browser extensions.
21d96e90f3SDerick Montague
22d96e90f3SDerick MontagueThe OpenBMC Web UI developers should test their development pages using one of the tools listed in the tools section below. If using Chrome, the Lighthouse application comes bundled with the browser and also includes testing for performance and best practices. If there is an issue that is created when using a Bootstrap-Vue component, we can [create an issue in the Bootstrap-vue repo](https://github.com/bootstrap-vue/bootstrap-vue/issues/new/choose). Contributing to the Bootstrap-Vue open-source library, when possible, is strongly encouraged.
23d96e90f3SDerick Montague
24d96e90f3SDerick Montague## Tools
25d96e90f3SDerick Montague- [Deque Axe](https://www.deque.com/axe/)
26d96e90f3SDerick Montague- [Firefox Accessibility Inspector](https://developer.mozilla.org/en-US/docs/Tools/Accessibility_inspector)
276e4773afSDerick Montague- [IBM Accessibility Tools](https://www.ibm.com/able/toolkit/tools)
28d96e90f3SDerick Montague- [Lighthouse](https://developers.google.com/web/tools/lighthouse)
29d96e90f3SDerick Montague
30d96e90f3SDerick Montague## Screen Readers
31d96e90f3SDerick Montague- [Jaws - (Windows only)](https://webaim.org/articles/jaws/)
32*3ec4c049SDerick Montague- [Narrator - (Windows only)](https://support.microsoft.com/en-us/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1)
33*3ec4c049SDerick Montague- [NVDA (Windows only)](https://webaim.org/articles/nvda/)
34*3ec4c049SDerick Montague- [Voiceover (Mac only)](https://webaim.org/articles/voiceover/)
35d96e90f3SDerick Montague
36d96e90f3SDerick Montague## Resources
37d96e90f3SDerick Montague- [Mozilla Developer Network - Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
38d96e90f3SDerick Montague- [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/WAI/standards-guidelines/wcag/)
39d96e90f3SDerick Montague- [WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices/)
40d96e90f3SDerick Montague- [WAI-ARIA Basics](https://developer.mozilla.org/en-US/docs/Learn/Accessibility/WAI-ARIA_basics)
41d96e90f3SDerick Montague- [WebAIM Articles](https://webaim.org/articles/)
42d96e90f3SDerick Montague- [A11Y Project](https://a11yproject.com/)
436e4773afSDerick Montague- [IBM Accessibility](https://www.ibm.com/able/)
44d96e90f3SDerick Montague- [Inclusive Components](https://inclusive-components.design/)
45d96e90f3SDerick Montague
46