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.

  • Class
    Description
    What 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 parameterised Accessible.Action carries.
    The argument of a verb that takes nothing.
    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 a AccessibleEvent.Type.STRUCTURE_CHANGED's node, and what happened to it.
    What happened.
    One element of an AccessibleTree: 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.