axobject-query
NOTICE: The API for AXObject Query is very much under development until a major version release. Please be aware that data structures might change in minor version releases before 1.0.0 is released.
AXObject Query
Approximate model of the Chrome AXObject.
The project attempts to map the AXObject concepts to the WAI-ARIA 1.1 Roles Model so that a complete representation of the semantic HTML layer, as it is exposed assistive technology, can be obtained.
Utilities
AXObjects
import { AXObjects } from 'axobject-query';AXObjects are mapped to their HTML and ARIA concepts in the relatedConcepts field.
The type field is a loose association of an AXObject to the window, structure and widget abstract roles in ARIA. The generic value is given to DivRole; it does not exist in ARIA. Divs are special in HTML in the way that they are used as generic containers. Span might have also been associated with a generic type except that there is no SpanRole AXObject.
Map {
'AbbrRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'AlertDialogRole' => { relatedConcepts: [ [Object] ], type: 'window' },
'AlertRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'AnnotationRole' => { relatedConcepts: [], type: 'structure' },
'ApplicationRole' => { relatedConcepts: [ [Object] ], type: 'window' },
'ArticleRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'AudioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'BannerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'BlockquoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'BusyIndicatorRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'ButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'CanvasRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'CaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'CellRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
'CheckBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'ColorWellRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'ColumnHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'ColumnRole' => { relatedConcepts: [], type: 'structure' },
'ComboBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'ComplementaryRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'ContentInfoRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DateRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'DateTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'DefinitionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DescriptionListDetailRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DescriptionListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DescriptionListTermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DetailsRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'DialogRole' => { relatedConcepts: [ [Object], [Object] ], type: 'window' },
'DirectoryRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'DisclosureTriangleRole' => { relatedConcepts: [], type: 'widget' },
'DivRole' => { relatedConcepts: [ [Object] ], type: 'generic' },
'DocumentRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'EmbeddedObjectRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'FeedRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'FigcaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'FigureRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'FooterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'FormRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'GridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'GroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'HeadingRole' => { relatedConcepts: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], type: 'structure' },
'IframePresentationalRole' => { relatedConcepts: [], type: 'window' },
'IframeRole' => { relatedConcepts: [ [Object] ], type: 'window' },
'IgnoredRole' => { relatedConcepts: [], type: 'structure' },
'ImageMapLinkRole' => { relatedConcepts: [], type: 'widget' },
'ImageMapRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'ImageRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'InlineTextBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'InputTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'LabelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'LegendRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'LineBreakRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'LinkRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'ListBoxOptionRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'ListBoxRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'ListItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'ListMarkerRole' => { relatedConcepts: [], type: 'structure' },
'ListRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'structure' },
'LogRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'MainRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'MarkRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'MarqueeRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'MathRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'MenuBarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'MenuButtonRole' => { relatedConcepts: [], type: 'widget' },
'MenuItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'MenuItemCheckBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'MenuItemRadioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'MenuListOptionRole' => { relatedConcepts: [], type: 'widget' },
'MenuListPopupRole' => { relatedConcepts: [], type: 'widget' },
'MenuRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'MeterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'NavigationRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'NoneRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'NoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'OutlineRole' => { relatedConcepts: [], type: 'structure' },
'ParagraphRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'PopUpButtonRole' => { relatedConcepts: [], type: 'widget' },
'PreRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'PresentationalRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'ProgressIndicatorRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'RadioButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'RadioGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'RegionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'RootWebAreaRole' => { relatedConcepts: [], type: 'structure' },
'RowHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'RowRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'RubyRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'RulerRole' => { relatedConcepts: [], type: 'structure' },
'ScrollAreaRole' => { relatedConcepts: [], type: 'structure' },
'ScrollBarRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'SeamlessWebAreaRole' => { relatedConcepts: [], type: 'structure' },
'SearchRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'SearchBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'SliderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'SliderThumbRole' => { relatedConcepts: [], type: 'structure' },
'SpinButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
'SpinButtonPartRole' => { relatedConcepts: [], type: 'structure' },
'SplitterRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'StaticTextRole' => { relatedConcepts: [], type: 'structure' },
'StatusRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'SVGRootRole' => { relatedConcepts: [], type: 'structure' },
'SwitchRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'TabGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TabRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'TableHeaderContainerRole' => { relatedConcepts: [], type: 'structure' },
'TableRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
'TabListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TabPanelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TextFieldRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
'TimeRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TimerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'ToggleButtonRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'ToolbarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'TreeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'TreeGridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'TreeItemRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'UserInterfaceTooltipRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
'VideoRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
'WebAreaRole' => { relatedConcepts: [], type: 'structure' },
'WindowRole' => { relatedConcepts: [], type: 'window' }
}AXObject to Element
AXObjects are mapped to their related HTML concepts, which may require attributes (in the case of inputs) to obtain the correct association.
AXObject to Role
AXObjects are mapped to their related ARIA concepts..
Element to AXObject
HTML elements are mapped to their related AXConcepts concepts.
Last updated
Was this helpful?