pub struct AccessSpec {Show 17 fields
pub role: Option<Role>,
pub label: Option<Label>,
pub description: Option<Label>,
pub checked: bool,
pub mixed: bool,
pub selected: bool,
pub expanded: Option<bool>,
pub value_now: Option<f32>,
pub value_min: Option<f32>,
pub value_max: Option<f32>,
pub value_text: Option<Label>,
pub value_step: Option<f32>,
pub caret: Option<u32>,
pub selection_anchor: Option<u32>,
pub caret_solid: bool,
pub tooltip: bool,
pub live: Live,
}Expand description
Accessibility properties a view states outright, as opposed to the
ones the core derives (see crate::access). Boxed on NodeSpec:
read only while an access tree is being built, and unset on nearly
every node.
Fields§
§role: Option<Role>What this node is to assistive technology (see crate::access).
Unset, the core derives one: a node with on_click is a button,
an editor a text input, a scrolling container a scroll view, and
a plain box is structure that leaves no trace. Role::None hides
the node and its subtree from the access tree (decoration).
label: Option<Label>The accessible name. Without one a button, link, tab or heading is
named by the text inside it; an image or an icon button has no
name at all, and the core says so (control-without-name,
image-without-label warnings).
description: Option<Label>The accessible description, read after the name — what the
description prop sets, and what the tooltip prop sets on the way
to drawing the same string.
checked: boolFor checkbox / radio / switch roles: the on state.
mixed: boolFor a checkbox: neither on nor off, like the select-all box over a
list some of whose rows are selected. Wins over checked, which it
leaves as it was.
selected: boolThe current one of a set: a Role::Tab, a picked Role::ListItem,
the Role::Link for the page you are on. A tab reports the state
either way; a row or a link reports it only where it is set (see
crate::access).
expanded: Option<bool>For a node that shows and hides something: expanded, or collapsed. None = it does not expand, and says nothing about it.
value_now: Option<f32>For a slider role: the current value and its range, so assistive technology can read the position (the drawing stays the view’s).
value_min: Option<f32>§value_max: Option<f32>§value_text: Option<Label>For a slider role: what the position reads as (ARIA’s
aria-valuetext). Without one a reader has only the three numbers
above and says a percentage — 25 in [5..60] is “36 percent” — so a
value whose unit matters says it here: “25 minutes”. It replaces
the number rather than joining it (see crate::access), and a
nudge announces the new text, not the new number.
value_step: Option<f32>For a slider role: how far one arrow key moves it, and the grid a value set by the pointer snaps to. None = a hundredth of the range.
caret: Option<u32>On a Role::Line of a custom editor: the caret’s byte offset into
the line’s text, and the byte offset of the selection’s other end
(see crate::access).
selection_anchor: Option<u32>§caret_solid: boolWith caret: the caret this line declares does not blink — a
block caret in a modal editor’s normal mode — so a driver’s blink
clock is not armed on it (Core::has_caret leaves it out) while
the offset still anchors the IME and reads to assistive
technology. Without it a declared caret is a caret to blink.
tooltip: boolFloat description below the node while it is hovered — the
tooltip prop’s third effect, set by NodeSpec::tooltip. The core
reads it as the node opens (Core::hint); a binding that lowers the
prop onto a box floats the hint itself and leaves this off. A leaf
reads it as it is pushed and floats the hint beside itself, anchored
to it, since it holds no children for the hint to be the last of —
which is how a binding asks it of a leaf (PropsOut::for_leaf,
backlog RG113).
live: LiveWhen the text inside this node changes, a reader reads the change
without being asked (ARIA’s aria-live). Off by default; a node
that declares it is semantic, so a plain box marked live is not
elided.