Skip to main content

Overview

FlowX.AI provides WCAG 2.1 Level AA accessibility compliance for applications built with the platform. Accessibility features are configured in the UI Designer and automatically applied by the renderers at runtime across web (Angular, React), iOS, and Android platforms.

Screen readers

ARIA labels, hints, roles, and live regions automatically mapped to UI components

Keyboard navigation

Full keyboard support with visible focus indicators and logical tab order

Cross-platform

Web, iOS (VoiceOver), and Android (TalkBack) support from a single configuration

Configuring accessibility in UI Designer

Accessibility properties are configured in the Settings tab of the component configuration panel. Properties are saved in platformDisplayOptions.flowxProps.accessibility for the generic platform and apply across all renderers.
{
  "platformsDisplayOptions": [
    {
      "flowxProps": {
        "accessibility": {
          "label": "",
          "decorative": false,
          "altText": "",
          "role": ""
        }
      },
      "platform": "generic"
    }
  ]
}

Available properties

PropertyDescription
labelAccessibility label announced by screen readers. Use when the component has no visible label or needs a different label for assistive technologies.
decorativeMarks the element as decorative so it is ignored by assistive technologies.
altTextShort descriptive text alternative for images, announced by screen readers.
roleLandmark role for navigation areas. Options: main, navigation, search, form, header, footer, aside, region, dialogue, alertdialogue, section.

Accessibility properties by component

Not all components expose the same accessibility properties. The SDK automatically reads certain existing properties (like label and placeholder text) and exposes them to assistive technologies. Additional properties can be configured where needed.

Form elements

ComponentAuto-read by SDKConfigurable in Designer
Inputlabel, text, placeholder, helper, erroraccessibility label
Single selectlabel, text, placeholder, helper, erroraccessibility label
Multi selectlabel, text, placeholder, helper, erroraccessibility label
Date pickerlabel, text, placeholder, helper, erroraccessibility label
Text arealabel, text, placeholder, helper, erroraccessibility label
Sliderlabel, value, helper, erroraccessibility label
Checkboxlabel, text, helper, erroraccessibility label
Radio buttonlabel, text, helper, erroraccessibility label
Switchlabel, text, helper, erroraccessibility label
Segmented buttonlabel, text, helper, erroraccessibility label
Use the accessibility label when the component has no visible label or text, or when you need a different label for assistive technologies.

Interactive elements

ComponentAuto-read by SDKConfigurable in Designer
Buttonlabelaccessibility label (icon-only)
File uploadlabelaccessibility label (icon-only)
For icon-only buttons, always set an accessibility label so screen readers can announce the button’s purpose.

Display elements

ComponentAuto-read by SDKConfigurable in Designer
Texttextdecorative
Linktextdecorative
Imagealt text, decorative
Messagetextdecorative
Cardtitle, subtitle
Formtitle
File previewtitle, subtitle
ComponentAuto-read by SDKConfigurable in Designer
Steptitleaccessibility label
Tabtitleaccessibility label
Modaltitleaccessibility label
Use the accessibility label for navigation areas when the area has no visible label or text, or when a different label is needed for assistive technologies.

Landmark roles

Navigation areas are assigned landmark roles that help screen reader users understand the page structure and navigate between regions.

Default roles

Navigation areaDefault roleConfigurable
PagemainNo
SteppernavigationNo
StepnavigationNo
TabbarnavigationNo
TabnavigationNo
ModaldialogueNo
ZonesectionYes

Zone roles

Zones can be configured with a landmark role to convey their purpose to assistive technologies:
  • main — primary content area
  • section — generic section (default)
  • nav — navigation region
  • header — page or section header
  • footer — page or section footer
  • aside — complementary content

Keyboard navigation

FlowX.AI applications support full keyboard navigation with visible focus indicators. Focus is indicated by an outline around the active element.

General patterns

KeyAction
TabMove focus to the next interactive element
Shift + TabMove focus to the previous interactive element
Enter / SpaceActivate the focused element (button, link, toggle)
EscapeClose modal or dismiss popup
Arrow keysNavigate within a component (radio options, slider, select list, tabs)

Component-specific behavior

  • Tab focuses the element (skipped if disabled)
  • Space / Enter executes the action
  • Tab focuses the element and enables typing (skipped if disabled)
  • Arrow keys move within the text
  • If the element has a clear button, Tab navigates to it; Space / Enter clears the value
  • Tab focuses the first option, then subsequent options
  • Space / Enter selects or deselects the focused option
  • After the last option, Tab moves to the next element
  • Tab focuses the selected option (or the first option if none selected)
  • Down / Right arrow moves focus forward and selects
  • Up / Left arrow moves focus backward and selects
  • Navigation wraps cyclically through options
  • Tab focuses the element (skipped if disabled)
  • Space / Enter toggles the value
  • Tab focuses the slider knob
  • Up / Right arrow increases by one step
  • Down / Left arrow decreases by one step
  • Tab focuses the element and enables typing (skipped if disabled)
  • Up / Down arrow opens the listbox
  • In the listbox: arrows navigate options, Enter selects and closes, Escape closes
  • Focus remains on the input while the listbox is open
  • If the element has a clear button, Tab navigates to it
  • Tab focuses the element and enables typing (skipped if disabled)
  • In the listbox: arrows navigate options, Enter selects (without closing), Escape closes
  • Focus remains on the input while the listbox is open
  • Tab moves focus to the active tab header
  • Left / Right arrow navigates between tab headers cyclically
  • Space / Enter activates the focused tab
  • Tab from the active tab header moves focus to the first focusable element in the tab content
  • Tab focuses the accordion trigger
  • Enter / Space expands or collapses the section
  • When expanded, Tab moves to the first focusable element in the content
  • When collapsed, Tab moves to the next accordion header cyclically

Screen reader support

FlowX.AI renderers automatically apply ARIA attributes to components based on their type and configuration. Many attributes are auto-bound — no manual configuration needed.

Auto-bound ARIA attributes

AttributeApplied to
aria-describedbyHelper text, error messages
aria-requiredRequired fields
aria-invalidFields with validation errors
aria-checkedCheckbox, radio, switch state
aria-selectedSelect option state
aria-expandedSelect/multiselect dropdown state
aria-autocompleteSelect search input
aria-valuemin, aria-valuemax, aria-valuenowSlider
AttributeApplied to
aria-labelButtons, links (from label/text)
aria-disabledDisabled buttons and inputs
aria-pressedToggle buttons
role="button" / role="link"Buttons and links
aria-live="polite"Message components
AttributeApplied to
altImages (from alt text property)
aria-hidden="true"Decorative images, text, links, messages

Platform support

Implementation status

FeatureWeb (Angular/React)iOS (VoiceOver)Android (TalkBack)
Accessibility labels
Decorative elements
Image alt text
Landmark roles
Keyboard navigationN/AN/A
ARIA auto-bindingN/AN/A
Form elements (screen reader)
Date picker (screen reader)🚧🚧🚧
Single select (screen reader)🚧🚧🚧
Multi select (screen reader)🚧🚧🚧
🚧 indicates components with partial screen reader support that is actively being improved.

Version availability

PlatformAccessibility featureAvailable since
Web (Angular/React)WCAG 2.1 Level AA complianceFlowX.AI 5.1.1
AndroidAccessibility properties from UI DesignerFlowX.AI 5.1.2
iOSVoiceOver supportFlowX.AI 5.1.3

Client responsibilities

FlowX.AI handles accessibility for platform-rendered components automatically. However, some accessibility aspects depend on the container application and content authored by the client.

What FlowX.AI handles

  • ARIA attributes on all rendered components
  • Keyboard navigation and focus management
  • Screen reader announcements for form states (errors, required fields)
  • Focus trapping in modals
  • Landmark roles for navigation areas

What clients are responsible for

  • Set the lang attribute on the html element for correct screen reader pronunciation
  • Provide a unique title for each page
  • Ensure viewport zoom is not disabled (user-scalable=yes)
  • Use logical heading hierarchy (h1h2h3, no skipping levels)
  • Write descriptive button and link labels (avoid “click here”, “read more”)
  • Provide meaningful alt text for images
  • Mark decorative elements appropriately
  • Use plain language (8th grade reading level)
  • Use left-aligned text for LTR languages, right-aligned for RTL
  • Normal text: minimum 4.5:1 contrast ratio
  • Large text: minimum 3:1 contrast ratio
  • Icons and UI elements: minimum 3:1 contrast ratio
  • Do not use color as the only way to convey information
  • Ensure error, warning, and success states are distinguishable without color
  • Avoid autoplaying media
  • Provide captions for video content
  • Avoid strobing or flashing animations (seizure triggers)
  • Respect prefers-reduced-motion for custom animations
  • Support both portrait and landscape orientation
  • Ensure touch targets are large enough for easy activation
  • Provide sufficient space between interactive elements for scrolling
  • Avoid horizontal scrolling

Testing recommendations

Keyboard testing

Navigate your application using only the keyboard. Verify that all interactive elements are reachable via Tab, that focus is visible, and that focus order matches the visual layout.

Screen reader testing

Test with VoiceOver (macOS/iOS), TalkBack (Android), or NVDA/JAWS (Windows). Verify labels are announced correctly and form states are communicated.

Automated testing

Use axe-core or similar tools in your CI pipeline to catch common accessibility issues. Storybook’s addon-a11y plugin provides real-time feedback during development.

High contrast modes

Activate Windows High Contrast mode or inverted colors. Verify content is still legible and interactive elements are distinguishable.

Last modified on February 27, 2026