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.
- import { ..., ViewChild, AfterViewInit } from '@angular/core';
- import { DxPopupModule, DxPopupComponent } from 'devextreme-angular';
- // ...
- export class AppComponent implements AfterViewInit {
- @ViewChild(DxPopupComponent, { static: false }) popup: DxPopupComponent;
- // Prior to Angular 8
- // @ViewChild(DxPopupComponent) popup: DxPopupComponent;
- ngAfterViewInit () {
- this.popup.instance.registerKeyHandler('backspace', function(e) {
- // The argument "e" contains information on the event
- });
- this.popup.instance.registerKeyHandler('space', function(e) {
- // ...
- });
- }
- }
- @NgModule({
- imports: [
- // ...
- DxPopupModule
- ],
- // ...
- })
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:
- <dx-popup ...
- (onShowing)="onShowingHandler($event)"
- >
- </dx-popup>
- import { Component } from "@angular/core";
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- onShowingHandler(e) {
- const overlayContent = e.component.content().parentElement;
- overlayContent.setAttribute("aria-modal", "true");
- }
- }
You can also use this method to specify aria-label for the component:
- <dx-popup ...
- (onShowing)="onShowingHandler($event)"
- >
- </dx-popup>
- import { Component } from "@angular/core";
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- onShowingHandler(e) {
- const overlayContent = e.component.content().parentElement;
- overlayContent.setAttribute("aria-label", "Dialog window");
- }
- }
If you have technical questions, please create a support ticket in the DevExpress Support Center.