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