Boost App Accessibility with Keyboard Navigation
December 21, 2023
DevExpress WinForms 23.2 lets users interact with data fields and UI elements using arrow keys and shortcuts.
DevExpress WinForms is a comprehensive suite of 190+ UI controls and development tools designed for building high-performance desktop applications. It offers a broad array of customizable controls, from data grids and ribbon interfaces to advanced charts, maps, and diagramming components. This empowers developers to rapidly create functionally rich applications, while adhering to accessibility guidelines and touch-enabled technology for modern Windows environments.
The DevExpress WinForms 23.2 release adds accessible keyboard navigation support to several controls, including the Ribbon, Backstage View, Recent Control, Data Grid, TreeList, CardView, Breadcrumb Editor, and Expression Editor. Users can navigate using arrow keys, keyboard shortcuts, and the Enter and Escape keys.
DevExpress WinForms 23.2.3
Released: Dec 13, 2023
Updates in 23.2.3
Features
- Added Microsoft .NET 8 support.
- You can now identify and localize non-translated strings in your DevExpress-powered .NET apps.
- Introduced a new Clipboard Access Policy that allows you to control (allow or disallow) clipboard-related operations initiated by users when using DevExpress UI controls in Windows Forms and WPF applications.
- Accessibility and UI Automation
- Now supports assistive tools and UI Automation patterns for the following WinForms controls:
- Chart.
- Print Preview (Document Viewer).
- Diagram.
- Spreadsheet.
- Rich Text Editor.
- Gantt.
- Flyout Dialog.
- Step Progress Bar.
- Also offer accessibility-related capabilities in the WinForms HTML and CSS implementation. These include:
- ARIA attributes (aria-label, aria-description, role).
- Roles (Button, Checkbox, Gridcell, Link, None, Menuitem, Menuitemcheckbox, Menuitemratio, Radio, Separator, Spinbutton).
- Alt attributes on Image and Input elements.
- Assistive Technologies (screen readers) Compatibility Enhancements
- Enhanced the Accessibility Tree for the following UI controls to ensure that assistive technologies receive the necessary information to comply with accessibility guidelines outlined in WCAG:
- FilterControl.
- Kanban.
- RangeTrackBar.
- BreadCrumbEdit.
- CalendarControl.
- ColorEdit and ColorPopupEdit.
- Built-in End-User Forms (for example, Column Filter Popup, Summary Customization Form, etc.).
- Assistive technologies, such as screen readers, are now notified of the following changes/modifications and can correctly pronounce them:
- Expand/Collapse State in a Card View / Combo Box.
- ProgressBarControl Value.
- AlertControl Message.
- Selection in GridView.
- Validation Errors in Data Editors.
- Values in TimeSpanEdit, DateTimeOffsetEdit, and DateEdit (touch mode).
- Items in the Document Selector (DocumentManager).
- ImageComboBoxEdit Items.
- Assistive technologies (screen readers) can now access the following information:
- LayoutItem Label.
- Node Nesting Level and Tree Info in TreeList and Accordion Control.
- Gauge Value.
- AccessibleName from LabelControl associated with a control.
- AccessibleName from a tooltip associated with ButtonBase.
- Accessible Keyboard Navigation
- Customization Window in Data Grid and TreeList?- The Customization Window in the WinForms Data Grid and WinForms TreeList controls now fully supports keyboard navigation. Users can move through and interact with data fields and UI elements using arrow keys and shortcuts.
- Added new APIs designed to display/hide the Customization Window in our CardView. New methods include:
- ShowCustomization().
- ShowCustomization(Point point).
- HideCustomization().
- Tab Navigation in Master-Detail Mode
- Added smooth keyboard navigation support between tabs in a master-detail grid. Users can effortlessly switch between detail tabs by pressing Ctrl + NumKey shortcuts. New APIs include:
- SelectNextDetailTab.
- SelectPrevDetailTab.
- SelectDetailTab.
- Ribbon, Backstage View, Recent Control
- Implemented keyboard navigation support (inspired by Microsft Office) in the WinForms Ribbon UI, Backstage View, and Recent Control. Improved keyboard navigation allows users with disabilities, vision impairments, and anyone who prefers keyboard shortcuts to navigate and interact with desktop applications more easily.
- Range Trackbar
- Keyboard users can now use navigation keys to interact with trackbar sliders:
- Up or Right arrow - Moves the slider to the right (top in the vertical orientation) by a small value.
- Down or Left arrow - Moves the slider to the left (bottom in the vertical orientation) by a small value.
- PageUp - Moves the slider to the right (top in the vertical orientation) by a large value.
- PageDown - Moves the slider to the left (bottom in the vertical orientation) by a large value.
- Home - Moves the slider to its minimum value.
- End - Moves the slider to its maximum value.
- Filter Editor
- You can now use the keyboard to interact with the filter editor tree (for example, navigate through items, select filter values, create filters/nodes, etc.).
- Conditional Formatting Manager
- Removed inaccessible areas and improved keyboard navigation in Master-Detail views.
- CardView Column Customization Button
- You can now focus the button that opens the Customization Form in our Card View.
- Editor Popup Buttons
- Users can now focus default buttons displayed within the editor's dropdown (popup).
- Expression Editor
- Users can now escape the "focus trap" in the expression editing area with the Ctrl+Tab shortcut.
- Data Grid
- Multi-Level Filtering/Search in Master-Detail Mode?- You can now enter a search expression within the Grid's Search Panel to instantly filter data and highlight results in master and expanded detail views.
- Reorder Data Rows Using Drag and Drop in GridView?- With drag and drop enabled, your users can move data rows to another Data Grid control or reorder rows (in the same Data Grid). With v23.2, reordering data rows is available out-of-the-box. You no longer need to handle drag-related events. Users can select multiple data rows and move them to a different position, or move rows from one group to another. And yes, users can move data rows in a sorted GridView. The GridView automatically updates cell values for sorted columns.
- Select Rows Based on a Specific Condition?- The WinForms Data Grid control now includes a new SelectionChanging event. Handle the event to prevent users from selecting data rows based on a specific condition.
- Save-Restore Layout Enhancements?- Added new PropertySerializing and PropertyDeserializing events for granular control over layout save/restore operations.
- Editors
- Rounded Progress Bars in WXI Skins?- WinForms Progress Bar and Marquee Progress Bar controls display rounded corners when using WXI and WXI Compact skins (inspired by Microsoft Windows 11).
- Display/Hide Auto-Complete Popups within Text Editors?- The WinForms Text Editors can display a popup with suggestions (to complete words). v23.2 includes new methods to display/hide the auto-complete popup when necessary. For example, you can display the popup with suggestions when a user presses a specific key or key combination.
- Disable Shortcuts within Text Editors?- You can now use the ShortcutsEnabled property to specify whether DevExpress TextEdit-based editors must accept standard keyboard shortcuts (Ctrl+C, Ctrl+X, etc.).
- File Dialogs
- Wildcards?- You can now use * and ? wildcards to filter/search files in the WinForms Open File and Save File dialogs.
- Font Icon Images
- Windows 10/11 contains hundreds of font icons (Segoe MDL2 Assets in Windows 10 and Segoe Fluent Icons in Windows 11 fonts). You can now use the Image Picker to assign font icon images to individual UI controls/elements or add them to the SvgImageCollection. And yes, font icon images support skin colors.
- Also added a new WindowsFormsSettings.FontIconsStyle setting to specify default icon font:
- Gantt
- Middle-Button Auto-Scroll?- The WinForms Gantt control now supports auto-scrolling out of the box. With this option, your users can press the middle mouse button and then move the mouse to scroll content vertically or horizontally.
- HTML and CSS Support
- Surrogate Pairs?- Improved layout and content selection that includes emojis made up of two surrogates (when the emoji code is represented by two Unicode code points).
- MVVM Framework
- Command Binding (Call Methods inside the UI)?- Implemented the following APIs (for all WinForms components) for improved compatibility with Microsoft's new implementation (Using Command Binding in Windows Forms apps to go Cross-Platform):
- Command.
- CommandParameter.
- CommandChanged.
- CommandCanExecuteChanged.
- Also augmented the UI generation mechanism in our Data Layout Control. You can now automatically generate buttons based on view model commands.
- .NET 8 Data Annotation Attributes
- Added support for new data validation attributes (including new properties in RangeAttribute and RequiredAttribute types) introduced in .NET 8. You can use these attributes to configure elements generated in data-bound controls (GridControl, TreeList, VGridControl, PropertyGridControl and Data Layout Control).
- Ribbon
- Customize QAT Commands in Ribbon Customization Form?- Extended runtime customization of the Ribbon UI. Your users can now customize Quick Access Toolbar (QAT) commands in the Ribbon Customization Window.
- Added a new AllowToolbarCustomization option. When this option is enabled, users can select the "Quick Access Toolbar" item in the Ribbon Customization Window and add/remove/arrange QAT commands as needed.
- Rich Text Editor
- Content Controls?- The WinForms Rich Text Editor can now display, print, and export (PDF) documents that include the following content controls:
- Rich Text.
- Plain Text.
- ComboBox.
- Drop-Down List.
- Date Picker.
- CheckBox.
- Picture.
- Repeating Section.
- Also added a new Document.ContentControls property that allows you to obtain and manage content controls in code.
- Protected Sections?- In "Fill-In Forms" protection mode, the WinForms Rich Text Editor locks the document and allows the user to complete only fillable forms (if any). v23.2 adds a new Section.ProtectedForForms setting that allows you to unlock specific sections in a protected document.
- SVG Support?- The WinForms Rich Text Editor can now open, save, export (PDF), and edit documents with SVG graphics. You can also resize, move, and align SVG images within the document as needed.
- Spreadsheet
- Form Controls?- The WinForms Spreadsheet control supports the following form controls:
- Button.
- CheckBox.
- ComboBox.
- GroupBox.
- Label.
- ListBox.
- Radio Button.
- Spin Button.
- Scrollbar.
- You can print and export (PDF) worksheets with the aforementioned form controls. Also added a new Worksheet.FormControls property. Use the property to access and manage form controls in code.
- Chart Enhancements?- The WinForms Spreadsheet control can now display, print, and export (PDF) the following chart elements:
- Error Bars.
- Rotated Axis Labels.
- RTF Axis Titles.
- Also added new APIs to import and apply chart settings from Chart Template files (.CRTX). The AddFromTemplate method creates a chart from a template. The LoadTemplate method applies template settings to an existing chart.
- Export Cell Content to HTML and RTF?-You can now obtain cell content in RTF or HTML format. New APIs include:
- GetRtfContent.
- GetHtmlContent.
- SVG Support?- The WinForms Spreadsheet control can now open, save, export (PDF), and edit worksheets/workbooks with SVG graphics. You can also move, align, and resize SVG images within the document as needed.
- TreeList
- Select Nodes Based on a Specific Condition?- The WinForms TreeList control ships with a new TreeList.SelectionChanging event. Handle the event to prevent users from selecting nodes based on a specific condition.
- Save-Restore Layout Enhancements?- The TreeList control includes the following new options:
- StoreAllColumnsOptions - Specifies whether to include all column settings in the layout when it is saved or restored.
- StoreColumnsLayout - Specifies whether to include column/band width and visibility information in the layout when it is saved or restored.
- StoreDataSettings - Specifies whether to include sorting, filtering, and summary information in the layout when it is saved or restored.
- StoreFormatRules - Specifies whether to include information about conditional formatting (if applied) in the layout when it is saved or restored.
- StoreVisualOptions - Specifies whether to include TreeList.FindPanelVisible and TreeList.OptionsView settings in the layout when it is saved or restored.
- Also added new PropertySerializing and PropertyDeserializing events for granular control over layout save/restore operation. These events are also available in our WinForms Data Grid and Vertical Grid controls.
- Middle-Button Auto-Scroll?- The TreeList control ships with auto-scrolling. With this option, your users can press the middle mouse button and then move the mouse to scroll content vertically or horizontally.
- Collection Aggregate Functions?- As you may know, the WinForms Data Grid allows you to create filters with the following collection aggregation functions: Count, Min, Max, Average, Sum, Exists. You can now specify the TreeListOptionsFilter.FilterEditorAggregateEditing property and use these functions to filter WinForms TreeList data based on collection properties.
- Vertical Grid
- Advanced Customization Form?- Improved the Row Customization Form in our WinForms Vertical Grid control. The Customization Form now displays all rows/categories, and allows users to display/hide these elements using check boxes. The form integrates a search box and a sort button.
- Save-Restore Layout Enhancements?- Added new PropertySerializing and PropertyDeserializing events for granular control over layout save/restore operations.
- Design-Time Enhancements
- Step Progress Bar - Select and Customize Items in .NET Designer?- Step Progress Bar customization is now easier than ever. You can effortlessly choose an item directly on the design canvas, invoke its smart tag menu, and customize general settings as needed.
- BackstageView and RecentItemControl - Design-Time Customization Enhancements?- You can now select an item in our WinForms BackstageView or RecentItemControl and press Escape to select its immediate parent until you reach the top parent (for example, a form or user control).
- The Bezier Skin Now Used in Design-Time?- Refreshed the Microsoft Visual Studio designers, wizards, and customization dialogs. These design-time elements now feature the lightweight vector skin ("The Bezier").
- UI Templates
- Date Range Picker?- Added the Date Range Picker to the WinFoms UI Templates. The template is based on the WinForms DateEdit control. As its name implies, the control allows users to select a date range.