pub enum A11yBoundsSpace {
Screen,
Scene,
}Expand description
Coordinate space the AT walker reports SceneItem bounds in.
The framework convention is screen-projected bounds — the rectangle a sighted user would see on the physical monitor, after pan/zoom/rotation has been applied. Screen readers consume this for spatial nav (Apple’s “explore by touch”, touch-screen navi- gation, magnifier follow-focus). 99% of apps want this default.
Scene bounds are the raw scene-coord rectangle stored on the item, with no view-transform applied. Use this only for the rare AT clients that reason about scene topology rather than viewport position — typically when a SceneView’s contents have a logical, fixed coordinate system that the user thinks in (a CAD canvas where “the bracket is at (240, 180)” means a fixed physical machine position regardless of zoom level).
Picking the wrong one makes “go to the next item” navigation
either a) ignore the user’s current pan (Screen mode in a
scene-coord-aware app) or b) report bounds that drift under
pan/zoom (Scene mode in a viewport-aware app). Default is
Screen — change only when you’ve confirmed your AT users
genuinely want the alternative.
Variants§
Screen
Screen-projected bounds — view_transform * bounds_in_scene.
The framework default; matches the convention used by every
other widget in the framework.
Scene
Raw scene-coordinate bounds, with no view-transform applied. Apps with a logical fixed coordinate system (CAD canvases, blueprint editors) may want this so AT users can reason about “where in the design” an item sits, independent of the current pan/zoom.
Trait Implementations§
Source§impl Clone for A11yBoundsSpace
impl Clone for A11yBoundsSpace
Source§fn clone(&self) -> A11yBoundsSpace
fn clone(&self) -> A11yBoundsSpace
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for A11yBoundsSpace
Source§impl Debug for A11yBoundsSpace
impl Debug for A11yBoundsSpace
Source§impl Default for A11yBoundsSpace
impl Default for A11yBoundsSpace
Source§fn default() -> A11yBoundsSpace
fn default() -> A11yBoundsSpace
impl Eq for A11yBoundsSpace
Source§impl PartialEq for A11yBoundsSpace
impl PartialEq for A11yBoundsSpace
Source§fn eq(&self, other: &A11yBoundsSpace) -> bool
fn eq(&self, other: &A11yBoundsSpace) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for A11yBoundsSpace
Auto Trait Implementations§
impl Freeze for A11yBoundsSpace
impl RefUnwindSafe for A11yBoundsSpace
impl Send for A11yBoundsSpace
impl Sync for A11yBoundsSpace
impl Unpin for A11yBoundsSpace
impl UnsafeUnpin for A11yBoundsSpace
impl UnwindSafe for A11yBoundsSpace
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more