Package limn.accessibility
@NullMarked
package limn.accessibility
The accessible tree: what a screen reader is told about a window, as an immutable
whole-window snapshot the user-interface thread publishes and any thread may read.
Nothing here knows about a widget, a scene or a platform. Accessibility is the builder a widget fills in;
AccessibleTree is what a publish produces and a bridge reads;
AccessibleEvent is the difference between two of them. The three
platform vocabularies disagree about where a behaviour lives — a pattern on Windows, a
state bit and an action row on Linux, an attribute on macOS — so behaviour is carried by
typed facets and every platform's view is derived from the same one.
-
ClassDescriptionWhat a widget fills in to say what it is, and the scratch the publish step fills it into.What
Accessibility.resolveRelations(limn.accessibility.Accessibility.RelationResolver)turns a relation's target into a node identifier with.The vocabulary the accessible tree is written in: what a node is, what is true of it, what can be done to it, and where its name came from.What an assistive technology can ask of a node.What a parameterisedAccessible.Actioncarries.The argument of a verb that takes nothing.A range of text, forAccessible.Action.SET_CARETandAccessible.Action.SET_SELECTION.A string, forAccessible.Action.SET_TEXT.A number, forAccessible.Action.SET_VALUE.Where a node's name came from.Whether an announcement waits for the assistive technology to finish, or interrupts it.A link between two nodes that the tree's parent-and-child shape cannot carry.What a node is.What is true of a node.One thing an assistive technology has to be told: a property that moved, a node that appeared or went away, a window that opened, or something the application said out loud.One child of aAccessibleEvent.Type.STRUCTURE_CHANGED's node, and what happened to it.What happened.One element of anAccessibleTree: a role, a name with its provenance, a description, a language, a set of states, a rectangle, relations, and zero or more typed facets.One link from a node to another node of the same tree, by identifier.One window's accessible tree, as it stood at the instant the user-interface thread published it.The parameterless verbs a node offers, and the keystroke that performs the first of them.One cell of a table: where it sits in the grid, and — on a header cell — which way the rows it sorts are running.Which way a sorted column's rows run.A node that opens and closes: a combo box, a menu title, a disclosure.Where a row stands in an outline: how deep it is, and which visible row it is.What each role is called, in the user's language: the phrase a screen reader speaks after a node's name — "button", "check box", "slider".A node that scrolls its content: a scroll view, a list, a text area, an overflowing strip.A node that holds a selection among its descendants: a list, a menu column, a tab strip, a combo box's popup.One member of a selection: a list row, a menu row, a tab, a radio button, a combo option.What a published node is, read off its role and its facets and never declared: a menu row, a grid cell, a row of a selection, the owner of a popup, a toggle, a value, a text, a pressable leaf, a sentence, or a surface.What a state is called, in the user's language, for the one platform field that carries a state as words rather than as a bit.A grid of rows and columns over data: what a table publishes about its own shape.A node that holds text a user can read, and usually edit: a text field, a text area, a search field, a password field.A node that carries a checked state: a checkbox, a switch, a check menu item, a toggle button.What a toggle can be.A node whose state is a number in a range: a slider, a spinner, a progress bar, a scroll bar, a split pane's divider, a date field's segment.A node that is a real top-level window.How a window is currently presented.