Skip to main content
All docs
V23.2

Accessibility Support

  • 5 minutes to read

The DevExpress WinForms UI Library includes everything you need to build Windows software that is fully accessible for users with a disability or impairment.

DevExpress WinForms UI controls are fully compatible with modern assistive technologies such as Narrator — available from Microsoft Active Accessibility. WinForms UI controls fully support MSAA and UI Automation to help assistive tools recognize the bounds, names, roles, states, and values of UI elements. WinForms UI controls also support UI Automation patterns (for example, grid, dock, scroll, selection, table, expand/collapse, and etc.).

DevExpress high contrast skins and High DPI Support help you design apps for users with impaired vision.

Accessibility Standards and Guidelines

DevExpress WinForms UI controls comply with Section 508, WCAG 2.0 (Level AA), and EN 301 549.

Accessible API for WinForms UI Controls

DevExpress WinForms UI controls implement standard API used by accessibility client applications. All UI elements are labeled, property values are exposed, and appropriate events are raised.

Property Name Description
AccessibleName Specifies a control’s name used by accessibility client applications.
AccessibleRole Specifies the accessible role of a control or UI element.
AccessibleDescription Describes a control or UI element. This description is used by accessibility client applications.

The following image illustrates the Accessibility tree for a Data Grid control:

Accessible API for UI Controls - WinForms Library

Handle the QueryAccessibleInfo event to describe certain or custom UI elements to ensure that programmatic access is correctly implemented. The QueryAccessibleInfo event serves as a single entry point to customize accessibility information for all DevExpress controls in your Windows Forms application. If you use controls from multiple assemblies in your app (for example, Data Grid, Editors, Charts, PivotGrid), the QueryAccessibleInfo event will be fired for each UI control.

The following example handles the QueryAccessibleInfo event to specify a meaningful name for the Magnifier button in the ColorEdit control. The default accessible button name is “Glyph”. This name is read aloud by Accessibility clients, such as Windows Narrator, and it gives no indication of what the button actually does.

using DevExpress.Accessibility;

public Form1() {
    InitializeComponent();
    DXAccessible.QueryAccessibleInfo += (s, e) => {
        if(e.OwnerControl == this.colorEdit1 && e.Name == "Glyph")
            e.Name = "Magnifier";
    };
}

Accessible API for UI Elements - WinForms CalcEdit

You can also handle the QueryAccessibleInfo event to specify more sensible accessible names, roles, and descriptions for UI elements in the context of your Windows application.

Read the following blog post for detailed information and examples on how to specify more accurate accessible names for UI elements in the Data Grid and TreeList controls: How to Customize Accessibility Properties.

Disable DevExpress Accessibility

Turn on the WindowsFormsSettings.DisableAccessibility option to disable DevExpress Accessibility Support for all DevExpress UI controls in a Windows Forms application.

WinForms UI Controls with Accessible API

The following table lists DevExpress WinForms UI controls that convey accessible information to assistive technologies through Microsoft Active Accessibility:

Expand the table

WinForms Control

Accessible API

Data Grid

GridColumn.AccessibleName

GridColumn.AccessibleRole

GridColumn.AccessibleDescription

GridBand.AccessibleName

GridBand.AccessibleRole

GridBand.AccessibleDescription

BaseView.AccessibleName

BaseView.AccessibleRole

BaseView.AccessibleDescription

Bars

Bar.AccessibleName

Bar.AccessibleRole

Bar.AccessibleDescription

BarItem.AccessibleName

BarItem.AccessibleRole

BarItem.AccessibleDescription

Document Manager

BaseDocument.AccessibleName

BaseDocument.AccessibleRole

BaseDocument.AccessibleDescription

DocumentGroup.AccessibleName

DocumentGroup.AccessibleRole

DocumentGroup.AccessibleDescription

Tile.AccessibleName

Tile.AccessibleRole

Tile.AccessibleDescription

Accordion

AccessibleName

AccessibleRole

AccessibleDescription

Ribbon

ApplicationButtonAccessibleName

ApplicationButtonAccessibleDescription

BackstageViewItemBase.AccessibleName

BackstageViewItemBase.AccessibleRole

BackstageViewItemBase.AccessibleDescription

GalleryItem.AccessibleName

GalleryItem.AccessibleRole

GalleryItem.AccessibleDescription

RecentItemBase.AccessibleName

RecentItemBase.AccessibleRole

RecentItemBase.AccessibleDescription

Data Editors

RepositoryItem.AccessibleName

RepositoryItem.AccessibleRole

RepositoryItem.AccessibleDescription

Tile Control

TileItem.AccessibleName

TileItem.AccessibleRole

TileItem.AccessibleDescription

Radio Group

RadioGroupItem.AccessibleName

Layout Control

BaseLayoutItem.AccessibleName

BaseLayoutItem.AccessibleRole

BaseLayoutItem.AccessibleDescription

Navigation Bar

NavBarGroup.AccessibleName

NavBarGroup.AccessibleRole

NavBarGroup.AccessibleDescription

NavBarItem.AccessibleName

NavBarItem.AccessibleRole

NavBarItem.AccessibleDescription

Pivot Grid

PivotGridField.AccessibleName

PivotGridField.AccessibleRole

PivotGridField.AccessibleDescription

Tabbed MDI Manager

XtraTabbedMdiManager.AccessibleName

XtraTabbedMdiManager.AccessibleRole

XtraTabbedMdiManager.AccessibleDescription

TreeList

TreeListColumn.AccessibleName

TreeListColumn.AccessibleRole

TreeListColumn.AccessibleDescription

TreeListBand.AccessibleName

TreeListBand.AccessibleRole

TreeListBand.AccessibleDescription

Vertical Grid

RowProperties.AccessibleName

RowProperties.AccessibleRole

RowProperties.AccessibleDescription

Diagram

DiagramItem.AccessibleObject

DiagramImage.AltText

Gauge

BaseGaugeWin.AccessibleDescription

BaseGaugeWin.AccessibleDescriptionFormat

BaseGaugeWin.AccessibleName

BaseGaugeWin.AccessibleValueFormat

ChartControl

AxisIntervalViewDataAccessible

AxisLabelItemBaseAccessible

AxisTitleViewDataAccessible

AxisViewDataAccessible

ChartControlAccessible

ChartElementAccessible

DiagramViewDataAccessible<T>

DockableTitleViewDataAccessible

LegendItemViewDataAccessible

LegendTitleViewDataAccessible

LegendViewDataAccessible

PaneViewDataAccessible<T>

PieTotalLabelViewDataAccessible

RadarAxisXViewDataAccessible

RadarAxisYViewDataAccessible

RadarDiagramViewDataAccessible

SeriesLabelLayoutAccessible

SimpleDiagramViewDataAccessible

XYDiagramPaneTitleViewDataAccessible

XYDiagramPaneViewDataAccessible

XYDiagramViewDataAccessible

Limitations

The following WinForms UI controls do not support DevExpress Accessibility:

  • PDF Viewer
  • Report Viewer
  • WinForms BI Dashboard
  • Map
  • TreeMap.

The ChartControl does not create accessibility tree for 3D Charts.

Chart points are not included in the accessibility tree for all chart types.

High Contrast Mode

Use the DevExpress High Contrast or The Bezier Skin to improve readability. These skins include predesigned color palettes that use carefully selected color combinations to help users with impaired vision (to distinguish text, borders, selection states, and other visual elements).

High Contrast Skin

The High Contrast skin includes the following color palettes: Default, High Contrast White, High Contrast #1, High Contrast #2.

High Contrast Palettes - The Bezier Skin

The Bezier Skin

The Bezier skin includes two high contrast palettes: High Contrast White, High Contrast Black.

High Contrast Palettes - The Bezier Skin

High DPI Support

DevExpress WinForms UI controls support DirectX hardware acceleration and deliver exceptional performance and superb High DPI rendering quality (4K/8K).

High DPI Support - WinForms UI Controls

Right-to-Left Support

DevExpress forms and UI controls support right-to-left languages (RTL) at runtime. Read the following topic for detailed information and examples: Right-to-Left Layout in WinForms Controls.

See Also

How to Create UI Automation Tests for a DevExpress-powered WinForms Application