diff --git a/accessibility.md b/accessibility.md new file mode 100644 index 000000000..6e75e34e6 --- /dev/null +++ b/accessibility.md @@ -0,0 +1,519 @@ +--- +id: accessibility +title: Accessibility +permalink: docs/accessibility.html +--- + +## Why Accessibility? {#why-accessibility} + +Web accessibility (also referred to as [**a11y**](https://en.wiktionary.org/wiki/a11y)) is the design and creation of websites that can be used by everyone. Accessibility support is necessary to allow assistive technology to interpret web pages. + +React fully supports building accessible websites, often by using standard HTML techniques. + +## Standards and Guidelines {#standards-and-guidelines} + +### WCAG {#wcag} + +The [Web Content Accessibility Guidelines](https://www.w3.org/WAI/intro/wcag) provides guidelines for creating accessible web sites. + +The following WCAG checklists provide an overview: + +- [WCAG checklist from Wuhcag](https://www.wuhcag.com/wcag-checklist/) +- [WCAG checklist from WebAIM](https://webaim.org/standards/wcag/checklist) +- [Checklist from The A11Y Project](https://a11yproject.com/checklist.html) + +### WAI-ARIA {#wai-aria} + +The [Web Accessibility Initiative - Accessible Rich Internet Applications](https://www.w3.org/WAI/intro/aria) document contains techniques for building fully accessible JavaScript widgets. + +Note that all `aria-*` HTML attributes are fully supported in JSX. Whereas most DOM properties and attributes in React are camelCased, these attributes should be hyphen-cased (also known as kebab-case, lisp-case, etc) as they are in plain HTML: + +```javascript{3,4} + +``` + +## Semantic HTML {#semantic-html} +Semantic HTML is the foundation of accessibility in a web application. Using the various HTML elements to reinforce the meaning of information +in our websites will often give us accessibility for free. + +- [MDN HTML elements reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) + +Sometimes we break HTML semantics when we add `
` elements to our JSX to make our React code work, especially when working with lists (`
    `, `