pub struct AccessSpec {Show 17 fields
pub role: Option<Role>,
pub label: Option<Arc<str>>,
pub description: Option<Arc<str>>,
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<Arc<str>>,
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<Arc<str>>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<Arc<str>>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<Arc<str>>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.
Implementations§
Source§impl AccessSpec
impl AccessSpec
Sourcepub const EMPTY: AccessSpec
pub const EMPTY: AccessSpec
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
impl Clone for AccessSpec
Source§fn clone(&self) -> AccessSpec
fn clone(&self) -> AccessSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AccessSpec
impl Debug for AccessSpec
Source§impl Default for AccessSpec
impl Default for AccessSpec
Source§fn default() -> AccessSpec
fn default() -> AccessSpec
Source§impl PartialEq for AccessSpec
impl PartialEq for AccessSpec
impl StructuralPartialEq for AccessSpec
Auto Trait Implementations§
impl Freeze for AccessSpec
impl RefUnwindSafe for AccessSpec
impl Send for AccessSpec
impl Sync for AccessSpec
impl Unpin for AccessSpec
impl UnsafeUnpin for AccessSpec
impl UnwindSafe for AccessSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.