Abra rules
Abra has created 92 accessibility testing rules for Android and iOS apps.
📄️ Actions reversable on up-event
The action triggered on down-events should be reversible by the up-event.
📄️ Alternative for device motion present
The functionality that relies solely on device motion should have an alternative input method.
📄️ Alternative for multi-point gestures present
All the functionality requiring multipoint gestures should have alternative controls.
📄️ Alternative for path-based gestures present
All the functionality requiring path-based gestures should have alternative controls.
📄️ Alternative for video-only present (prerecorded)
The prerecorded video-only content should have an alternative that provides equivalent information.
📄️ Audio control present
The sound that plays automatically and lasts longer than 3 seconds should have a control to turn it off.
📄️ Audio description present
The video should include an audio description for visual information not conveyed in the audio track.
📄️ Cancel or undo action mechanism present
The action should provide a cancel mechanism during interaction or an undo option after completion to ensure users can reverse unintended actions.
📄️ Captions correct (live)
The captions for live video content should fully and accurately reflect the spoken text and include meaningful sound effects.
📄️ Captions correct (prerecorded)
The captions for prerecorded video content should fully and accurately reflect the spoken text, be in the same language, and include meaningful sound effects.
📄️ Captions present (live)
The live video content should include captions.
📄️ Captions present (prerecorded)
The prerecorded video content should include captions.
📄️ Color of keyboard focus indicator is not the only cue
The customized focus indicator should not rely solely on color presentation.
📄️ Color of the element is not the only cue
The color of the element should not be the only cue to convey information.
📄️ Column index within a collection correct
The column index should accurately reflect its position within the sequence.
📄️ Column index within a collection present
The column should have a column index that is communicated to assistive technologies.
📄️ Content is not restricted to landscape orientation
The content on the screen should rotate from landscape to portrait orientation.
📄️ Content is not restricted to portrait orientation
The content on the screen should rotate from portrait to landscape orientation.
📄️ Content motion control present
The mechanism should be provided to pause, stop, or hide content that moves, blinks, or scrolls for more than five seconds.
📄️ Contrast for bold text 14pt or larger is at least 3.0:1
The large text should have a contrast ratio of at least 3.0:1 against its background.
📄️ Contrast for bold text smaller than 14pt is at least 4.5:1
The normal text should have a contrast ratio of at least 4.5:1 against its background.
📄️ Contrast for regular text 18pt or larger is at least 3.0:1
The large text should have a contrast ratio of at least 3.0:1 against its background.
📄️ Contrast for regular text smaller than 18pt is at least 4.5:1
The normal text should have a contrast ratio of at least 4.5:1 against its background.
📄️ Customized keyboard focus visible
All the elements receiving keyboard focus should have a distinct and visible focus indicator.
📄️ Decorative non-text content hidden
The decorative non-text content should be hidden from assistive technologies.
📄️ Error message correct
The error message associated with the input should be presented in text, clearly describing what went wrong.
📄️ Error prevention for legal, financial and data interactions present
The user should have an opportunity to review, confirm, or correct the entered information before it becomes final when submitting legal, financial, or data-related interactions.
📄️ Heading description correct
The heading should clearly describe the topic or purpose of the related content.
📄️ Heading role present
The heading text should be marked up as a heading.
📄️ Image role present
The image should be marked up as an image.
📄️ Initial focus in a reading order correct
The screen reader focus should start on the first element on the screen.
📄️ Interactive element name correct
The name of an interactive element should accurately describe its function or purpose.
📄️ Interactive element name present
The interactive element should have a name.
📄️ Interactive element role correct
The role of an interactive element should match its function.
📄️ Interactive element role present
The interactive element should have a role.
📄️ Interactive element state correct
The state of an interactive element should accurately reflect its current condition.
📄️ Interactive element state present
The interactive element should have a programmatically determinable state.
📄️ Interactive element value correct
The value of an interactive element should accurately reflect its current content or setting.
📄️ Interactive element value present
The interactive element should have a programmatically determinable value.
📄️ Interactive elements focusable using a keyboard interface
All the interactive elements should be focusable with a keyboard interface.
📄️ Interactive elements operable with accessibility interface
All the interactive elements should be operable using an accessibility interface.
📄️ Interactive elements operable with keyboard interface
All the interactive elements should be operable using a keyboard interface.
📄️ Interface elements contrast at least 3.0:1
The interface element should have a contrast ratio of at least 3.0:1 against its background.
📄️ Key shortcuts customized properly
The single character key shortcuts should either be able to be turned off, remapped to a non-singular key shortcut, or activated only when the appropriate user interface component has focus.
📄️ Keyboard focus indicator contrast at least 3.0:1
The keyboard focus indicator should have a contrast ratio of at least 3.0:1 against its background.
📄️ Keyboard focus order correct
The keyboard focus should go directly to the next visible interactive element with each keystroke in a sequential navigation.
📄️ Keyboard focus sequence includes all interactive elements
All the interactive elements on the screen should be included in the keyboard focus order.
📄️ Keyboard focus within modals correct
The keyboard focus should remain within modals or dialogs until closed.
📄️ Label present in name
The label of an interactive element, presented as text or an image of text, should match or be included in its accessible name.
📄️ Language of content correct
The text written in a language different from the app's primary language should be programmatically marked with the correct language.
📄️ Language of the app correct
The app's language should be correctly set to ensure assistive technologies apply accurate pronunciation rules.
📄️ Link purpose correct
The purpose of the link should be clear.
📄️ List items separately navigable
The list items should be separately focusable when using assistive technologies.
📄️ Map text alternative present
The map should have a text alternative.
📄️ Meaningful elements focusable with accessibility interface
All the meaningful elements should be focusable using an accessibility interface.
📄️ No action triggered on down-event
The action should be triggered only on the up-event unless activating on the down-event is essential.
📄️ No automatic focus on status message
The status messages should not receive focus automatically without user interaction.
📄️ No context change on focus with external keyboard present
The context changes should only occur as a result of intentional user interaction, not solely by receiving focus.
📄️ No context change on focus with screen reader present
The context changes should only occur as a result of intentional user interaction, not solely by receiving focus.
📄️ No flashing content present
No content that flashes more than three times per second should be displayed.
📄️ No keyboard trap present
All the parts of the screen, such as modals or menus, can be closed or exited using a keyboard interface.
📄️ No screen reader trap present
All parts of the screen, such as modals or menus, can be closed or exited using a screen reader.
📄️ No unexpected context change on input present
The context changes resulting from component setting adjustments should only be triggered after explicit user actions, or users should be warned about the change.
📄️ Non-text content label correct
The label of meaningful non-text content should clearly, accurately, and fully describe its meaning.
📄️ Non-text content label present
The meaningful non-text content should have a label.
📄️ Paragraphs separately navigable
The paragraphs in the text should be separately focusable when using assistive technologies.
📄️ Reading order correct
The reading order of elements announced by assistive technologies should match the visual order.
📄️ Reading order of related content correct
The elements that belong together must be presented together by assistive technologies.
📄️ Relation between elements announced
The related elements should be properly linked so that their relationship can be conveyed to assistive technologies.
📄️ Row index within a collection correct
The row index should accurately reflect its position within the sequence.
📄️ Row index within a collection present
The row should have a row index that is communicated to assistive technologies.
📄️ Scaled text not clipping
The text should not become hidden, disappear, or extend outside its containers when scaled up to 200%.
📄️ Scaled text not obscured
The text should not be overlapped or obscured by other text or content when scaled up to 200%.
📄️ Scaled text not truncated
The text should not be replaced with ellipses (...) or truncated when scaled up to 200%.
📄️ Screen reader focus order correct
The focus should go directly to the next visible element with each swipe in a sequential navigation.
📄️ Screen reader focus order includes all meaningful elements
All the meaningful elements on the screen should be included in the screen reader focus order.
📄️ Screen reader focus within modals correct
The focus should remain within modals or dialogs until closed.
📄️ Sensory cue is not the only way
The sensor-based cues such as haptics, shape, size, visual location, orientation, or sound should not be the only cue to convey information.
📄️ Sequence of events or steps announced
The sequence of events in a timeline or steps in a process should be conveyed to assistive technologies.
📄️ Status message announced
The status message should be announced by assistive technologies.
📄️ Suggestion how to fix error present
The error message associated with the input should describe suggestions on how to correct the error.
📄️ Target size (enhanced)
All interactive elements should have a minimum target size of at least 44 by 44 points.
📄️ Target size (minimum)
All interactive elements should have a minimum target size of at least 24 by 24 points.
📄️ Text alternative for audio-only or video-only correct (prerecorded)
The text alternative for audio-only or video-only content should include all meaningful audio or visual information, such as critical sound effects, music, or visual details.
📄️ Text alternative for audio-only present (prerecorded)
The prerecorded audio-only content should have a text alternative that provides equivalent information.
📄️ Text alternative for visual content in the video present (prerecorded)
The text alternative should be provided for important visual information in the video that is not explained in the audio and for which no audio description is available.
📄️ Text presented as plain text
The text should be presented as plain text, not as an image of text.
📄️ Text scaling
The text should scale properly when scaled up to 200%.
📄️ Time control for content display present
All the time-limited content can be paused, stopped, or extended.
📄️ Time limit for completing tasks adjustable
The time limits for completing tasks should be adjustable, allowing users to pause, stop, or extend them as needed.
📄️ Visible label correct
The label should clearly describe the topic or purpose of the related element.
📄️ Visible label for an input field present
The input field should have a label visible at all times.