Raxol.Core.Accessibility (Raxol v0.2.0)
View SourceAccessibility module for Raxol terminal UI applications.
This module provides accessibility features including:
- Screen reader announcements
- Keyboard navigation enhancements
- High contrast mode
- Reduced motion support
- Focus management
- Large text support
Usage
# Enable accessibility features
Accessibility.enable()
# Make an announcement for screen readers
Accessibility.announce("You have selected the search button")
# Enable high contrast mode
Accessibility.set_high_contrast(true)
# Enable reduced motion mode
Accessibility.set_reduced_motion(true)
# Enable large text mode
Accessibility.set_large_text(true)
Summary
Functions
Make an announcement for screen readers.
Clear all pending announcements.
Disable accessibility features.
Enable accessibility features.
Get the current color scheme based on accessibility settings.
Get the next announcement to be read by screen readers.
Get an accessibility option value.
Get the current text scale factor.
Handle focus change events for accessibility announcements.
Register metadata for an element to be used for accessibility features.
Enable or disable high contrast mode.
Enable or disable large text mode.
Set an accessibility option value.
Enable or disable reduced motion.
Functions
Make an announcement for screen readers.
This function adds a message to the announcement queue that will be read by screen readers.
Parameters
message
- The message to announceopts
- Options for the announcement
Options
:priority
- Priority level (:low
,:medium
,:high
) (default::medium
):interrupt
- Whether to interrupt current announcements (default:false
)
Examples
iex> Accessibility.announce("Button clicked")
:ok
iex> Accessibility.announce("Error occurred", priority: :high, interrupt: true)
:ok
Clear all pending announcements.
Examples
iex> Accessibility.clear_announcements()
:ok
Disable accessibility features.
Examples
iex> Accessibility.disable()
:ok
Enable accessibility features.
Options
:screen_reader
- Enable screen reader support (default:true
):high_contrast
- Enable high contrast mode (default:false
):reduced_motion
- Reduce or disable animations (default:false
):keyboard_focus
- Enhanced keyboard focus indicators (default:true
):large_text
- Use larger text for better readability (default:false
)
Examples
iex> Accessibility.enable()
:ok
iex> Accessibility.enable(high_contrast: true, reduced_motion: true)
:ok
Get the current color scheme based on accessibility settings.
Examples
iex> Accessibility.get_color_scheme()
%{background: ...} # Returns the current color scheme
Get the next announcement to be read by screen readers.
This function is typically called by the screen reader integration.
Examples
iex> Accessibility.get_next_announcement()
"Button clicked"
Get an accessibility option value.
Parameters
key
- The option key to get
Examples
iex> Accessibility.get_option(:high_contrast)
false
Get the current text scale factor.
Examples
iex> Accessibility.get_text_scale()
1.0 # Default scale
iex> Accessibility.set_large_text(true)
iex> Accessibility.get_text_scale()
1.5 # Large text scale
Handle focus change events for accessibility announcements.
Examples
iex> Accessibility.handle_focus_change(nil, "search_button")
:ok
Register metadata for an element to be used for accessibility features.
Parameters
element_id
- Unique identifier for the elementmetadata
- Metadata to associate with the element
Examples
iex> Accessibility.register_metadata("search_button", %{label: "Search"})
:ok
Enable or disable high contrast mode.
Examples
iex> Accessibility.set_high_contrast(true)
:ok
Enable or disable large text mode.
Examples
iex> Accessibility.set_large_text(true)
:ok
Set an accessibility option value.
Parameters
key
- The option key to setvalue
- The value to set
Examples
iex> Accessibility.set_option(:high_contrast, true)
:ok
Enable or disable reduced motion.
Examples
iex> Accessibility.set_reduced_motion(true)
:ok