Accessibility Features Overview
Accessibility Requirement | Support Level |
---|---|
Right-to-Left Support | |
Keyboard Navigation Support | |
Screen Reader Support | |
Contrast Color Theme | |
Mobile Device Support | |
Lighthouse Accessibility Validation | |
Axe Accessibility Validation | |
WAVE Accessibility Validation | |
Section 508 Support | |
WCAG 2.x Support |
- - All component features meet the requirement
- - Some component features may not meet the requirement
- - Accessibility requirement is not supported
Accessibility Standards Compliance
The Popup component meets a variety of Section 508 and WCAG 2.x compliance standards. Known exceptions:
Section 508 criteria | WCAG 2.x criteria | Exception description |
---|---|---|
501 (Web)(Software) 504.2 (Authoring Tool) 602.3 (Support Docs) |
1.4.3 Contrast (Minimum) (Level AA) 1.4.11 Non-text Contrast (Level AA 2.1 and 2.2) |
Popup does not support Windows High Contrast themes. |
501 (Web)(Software) 504.2 (Authoring Tool) 602.3 (Support Docs) |
4.1.2 Name, Role, Value (Level A) | Pressing drag arrows does not work when NVDA is enabled. |
Keyboard Navigation
A user can use the following keys to interact with the Popup component:
Key | Action |
---|---|
↑ → ↓ ← | Drags the popup when it is focused and dragEnabled is true. |
Esc | Closes the popup. |
Use the registerKeyHandler(key, handler) method to implement a custom handler for a key.
- <template>
- <DxPopup :ref="myPopupRef" />
- </template>
- <script>
- import 'devextreme/dist/css/dx.light.css';
- import DxPopup from 'devextreme-vue/popup';
- const myPopupRef = 'my-popup';
- export default {
- components: {
- DxPopup
- },
- data() {
- return {
- myPopupRef
- }
- },
- computed: {
- popup: function() {
- return this.$refs[myPopupRef].instance;
- }
- },
- mounted: function() {
- this.popup.registerKeyHandler('backspace', function(e) {
- // The argument "e" contains information on the event
- });
- this.popup.registerKeyHandler('space', function(e) {
- // ...
- });
- }
- }
- </script>
Screen Reader Support
The Popup component supports screen readers and complies to WAI-ARIA standards.
The default Popup ARIA role is the non-modal dialog. If you use Popup as a modal, enable the aria-modal attribute as follows:
- <template>
- <DxPopup ...
- @showing="onShowingHandler"
- />
- </template>
- <script>
- import { DxPopup } from 'devextreme-vue/popup';
- export default {
- components: {
- DxPopup
- },
- methods: {
- onShowingHandler(e) {
- const overlayContent = e.component.content().parentElement;
- overlayContent.setAttribute("aria-modal", "true");
- },
- },
- };
- </script>
You can also use this method to specify aria-label for the component:
- <template>
- <DxPopup ...
- @showing="onShowingHandler"
- />
- </template>
- <script>
- import { DxPopup } from 'devextreme-vue/popup';
- export default {
- components: {
- DxPopup
- },
- methods: {
- onShowingHandler(e) {
- const overlayContent = e.component.content().parentElement;
- overlayContent.setAttribute("aria-label", "Dialog window");
- },
- },
- };
- </script>
If you have technical questions, please create a support ticket in the DevExpress Support Center.