diff --git a/packages/dev/s2-docs/pages/react-aria/concepts.mdx b/packages/dev/s2-docs/pages/react-aria/concepts.mdx new file mode 100644 index 00000000000..5097a103b0e --- /dev/null +++ b/packages/dev/s2-docs/pages/react-aria/concepts.mdx @@ -0,0 +1,145 @@ +import {Layout} from '../../src/Layout'; +export default Layout; + +export const section = 'Guides'; +export const description = 'Learn about Accessibility, Internationalization, and Interactions in React Aria'; + +# Concepts + +React Aria is built around three core principles: **Accessibility**, **Internationalization**, and **Interactions**. Together, these ensure that every component you build works for everyone, everywhere, and on every device. + +## Accessibility + +Accessible applications are usable by everyone, including people with disabilities. Accessibility benefits all users — not just those using assistive technologies — by improving efficiency, consistency, and usability. + +React Aria provides built-in support for screen readers and keyboard navigation, following the [WAI-ARIA](https://www.w3.org/TR/wai-aria-1.2/) and [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/) guidelines. It supplies the correct semantics via ARIA roles and attributes, handles keyboard and pointer events, manages focus, and provides screen reader announcements. React Aria components are tested across a wide variety of devices, browsers, and screen readers. + +Be sure to create an accessible visual design with meaningful labels, sufficient [color contrast](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast) and [hit target sizes](https://www.w3.org/WAI/WCAG22/Understanding/target-size-enhanced), visible [focus rings](https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance), and respect [motion preferences](https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions). The [WCAG guidelines](https://www.w3.org/WAI/WCAG22/Understanding/) are a good resource to reference when designing and building components with React Aria. + +### Labeling + +Most components should have a visible label, which is usually provided by rendering a `