Skip to main content

Accessibility

Introduction

Wisej.NET 4.1 improves the accessibility information emitted by Wisej.NET controls. Controls now expose semantic ARIA roles, accessible names, descriptions, and state attributes that can be consumed by screen readers, browser automation, and accessibility-tree based inspection tools.

The API surface remains the familiar .NET control model. Application code sets properties such as AccessibleName, AccessibleDescription, Text, Enabled, Checked, Selected, Value, or SelectionMode; Wisej.NET renders the appropriate browser accessibility attributes for the control.

danger

The AccessibleRole enumeration and the AccessibleRole property were removed in 4.1.

Changing the semantic role of a control is no longer supported. The role is defined by the Wisej.NET control.

Accessible Name and Description

All Wisej.NET controls derived from Wisej.Web.Control support these accessibility properties:

.NET propertyARIA outputApplies to
AccessibleNamearia-labelAny Wisej.NET control
AccessibleDescriptionaria-descriptionAny Wisej.NET control

These attributes are applied to the control's accessibility target. For simple controls this is usually the control itself. For composite controls, Wisej.NET applies the attributes to the element that users actually interact with.

.NET controlAccessibility target
TextBox, MaskedTextBox, and other TextBoxBase controlsInner text field
ComboBoxInner text field when visible; otherwise the combo box
DateTimePickerInner text field
Label-wrapped editorsWrapped editor's accessibility target
TabPageTab button
DataGridView column headerHeader widget

Wisej.NET also links nearby labels to input controls where possible. When a Label or LinkLabel is immediately before a supported input control in the container, Wisej.NET sets aria-labelledby on the input control's accessibility target.

This automatic label association applies to TextBoxBase controls, ComboBox, DateTimePicker, ListBox, virtual list boxes, and up-down controls such as NumericUpDown and DomainUpDown.

Supported Roles and ARIA Attributes

The following table lists the Wisej.NET controls that have explicit accessibility roles or control-specific ARIA attributes in 4.1.

.NET control or featureRoleARIA attributes
Form, MessageBox and other windowsdialogaria-modal, title bar labels for window buttons
Buttonbuttonaria-disabled when disabled
CheckBoxcheckboxaria-checked, aria-disabled
RadioButtonradioaria-checked, aria-disabled
Radio button groupsradiogrouparia-disabled
TextBox, MaskedTextBoxtextboxaria-label, aria-description, aria-readonly, aria-placeholder, aria-disabled, aria-labelledby
Multiline TextBoxtextboxaria-multiline, plus text box attributes
ComboBoxcomboboxaria-haspopup, aria-expanded, aria-controls, aria-label, aria-labelledby, aria-disabled
DateTimePickertextbox, buttonaria-labelledby, aria-label on the open button, and text field accessibility attributes
ListBox, CheckedListBox, virtual list boxeslistboxaria-multiselectable, aria-selected, aria-labelledby, aria-disabled
ListView itemslistbox, optionaria-selected, aria-disabled
DataRepeater itemslistbox, optionaria-selected, aria-disabled
TreeViewtree, treeitemaria-expanded, aria-selected, aria-owns, aria-multiselectable, aria-disabled
VirtualTreeViewtree, treeitemaria-expanded, aria-selected, aria-owns, aria-multiselectable, aria-disabled
DataGridViewgrid, columnheaderaria-multiselectable, aria-disabled
TabControl, TabPagetablist, tab, tabpanelaria-selected, aria-disabled
Menu, ContextMenu, menu itemsmenu, menuitem, checkbox, radioaria-checked, aria-haspopup, aria-expanded, aria-controls, aria-disabled
MainMenu / menu barmenubarMenu item attributes
ToolBartoolbararia-disabled
ToolBarButton, ToolBarSplitButtonbutton, radio where applicablearia-checked, aria-haspopup, aria-expanded, aria-controls, aria-disabled
TrackBarslideraria-valuemin, aria-valuemax, aria-valuenow, aria-disabled
NumericUpDown, DomainUpDownspinbuttonaria-valuemin, aria-valuemax, aria-valuenow, aria-valuetext, aria-labelledby, aria-disabled
ProgressBarprogressbararia-valuemin, aria-valuemax, aria-valuenow, aria-disabled
HScrollBar, VScrollBarscrollbararia-orientation, aria-valuemax, aria-valuenow, aria-disabled
GroupBoxgrouparia-label, aria-description, aria-disabled
PictureBoximgaria-alt, aria-label, aria-description, aria-disabled
LinkLabellinkaria-label, aria-description, aria-disabled
StatusBarstatusaria-label, aria-description from common control properties
PdfViewerregionaria-label, aria-description, aria-disabled
Desktop taskbar areatoolbararia-label, aria-disabled

Controls not listed here can still expose aria-label, aria-description, and aria-disabled through the common Control accessibility support.

ARIA Attribute Reference

Wisej.NET 4.1 supports these ARIA attributes through built-in controls:

ARIA attributeSet by
aria-labelAccessibleName, control-specific labels, tool/container names
aria-descriptionAccessibleDescription
aria-labelledbyAutomatic Label / LinkLabel association with supported input controls, and label-wrapped editors
aria-disabledDisabled controls
aria-readonlyRead-only text editor controls
aria-placeholderText editor placeholder/cue text
aria-checkedCheckBox, RadioButton, checked menu items, radio menu items, toolbar toggle items
aria-selectedTabs, list items, tree items, list view items, data repeater items
aria-expandedCombo box and select popups, menu popups, tree nodes
aria-haspopupControls and menu items that open a popup
aria-controlsControls that own or open a popup/list/menu
aria-ownsTree items with child containers
aria-multiselectableMulti-select lists, trees, virtual trees, and grids
aria-multilineMultiline text boxes
aria-modalModal windows
aria-orientationHorizontal and vertical scroll bars
aria-valueminTrackBar, NumericUpDown, DomainUpDown, ProgressBar
aria-valuemaxTrackBar, NumericUpDown, DomainUpDown, ProgressBar, scroll bars
aria-valuenowTrackBar, NumericUpDown, DomainUpDown, ProgressBar, scroll bars
aria-valuetextUp-down controls that expose textual values
aria-altPictureBox text

Automation and AI Inspection

The same accessibility information is useful for browser automation and AI-assisted inspection. Tools such as Playwright can identify controls by role, name, and state instead of relying on generated DOM structure or CSS classes.

Examples:

  • getByRole("button", { name: "Save" })
  • getByRole("textbox", { name: "Customer Name" })
  • getByRole("tab", { name: "Orders" })

Wisej.NET also applies automation IDs to the accessibility target when a control exposes one, so automation can use both semantic lookup and deterministic element identifiers.

Implementation Notes

The accessibility implementation is primarily in the Wisej.NET client control layer and the underlying widget layer. The important application-facing behavior is that roles and ARIA state are generated by the Wisej.NET control, while AccessibleName and AccessibleDescription remain the primary .NET properties for custom accessible text.

Composite controls may place accessibility attributes on an inner input, button, tab, or header rather than on the outer container. This is intentional and helps assistive technologies interact with the same element the user interacts with.

Summary

Wisej.NET 4.1 provides explicit accessibility roles, names, descriptions, and state attributes for common Wisej.NET controls. The documentation should be read from the .NET control perspective: developers configure standard Wisej.NET control properties, and Wisej.NET renders the supported ARIA attributes for the appropriate browser accessibility target.