Skip to main content

AccessSpec

Struct AccessSpec 

Source
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: bool

For checkbox / radio / switch roles: the on state.

§mixed: bool

For 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: bool

The 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: bool

With 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: bool

Float 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: Live

When 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.

Implementations§

Source§

impl AccessSpec

Source

pub const EMPTY: Self

The group as a node that declares none of it — what NodeSpec’s accessor hands back when the box is None.

Trait Implementations§

Source§

impl Clone for AccessSpec

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AccessSpec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AccessSpec

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for AccessSpec

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AccessSpec

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.