pub(super) struct AccessibilityNode {
id: NodeId,
accesskit_node: Node,
parent_node: Option<WeakRefCell<AccessibilityNode>>,
child_nodes: Vec<ArcRefCell<AccessibilityNode>>,
opaque_node: Option<OpaqueNode>,
scroll_offset: Option<LayoutVector2D>,
dirty_state: DirtyState,
}Fields§
§id: NodeIdThe unique ID for the node. This is used both as a key in AccessibilityTree’s cache of
nodes, and as an identifier in accesskit datastructures: accesskit::Nodes,
accesskit::TreeUpdates and accesskit::ActionRequests.
accesskit_node: NodeThe computed accesskit::Node data. This will be copied and serialized into a
accesskit::TreeUpdate whenever it is changed during an update.
parent_node: Option<WeakRefCell<AccessibilityNode>>This node’s parent, if any.
child_nodes: Vec<ArcRefCell<AccessibilityNode>>All this node’s children.
opaque_node: Option<OpaqueNode>The OpaqueNode for the DOM node which corresponds to this accessibility node, if any.
An accessibility node may not correspond to a DOM node if it corresponds to a
pseudo-element, or in a test.
scroll_offset: Option<LayoutVector2D>This node’s scroll offset, if it is a scroll container which has scrolled. This is used to translate this node’s children.
dirty_state: DirtyStateAny dirty state for the current update.
Implementations§
Source§impl AccessibilityNode
impl AccessibilityNode
pub(super) fn new(id: NodeId) -> Self
pub(super) fn new_with_role(id: NodeId, role: Role) -> Self
Sourcepub(super) fn update_subtree<'update>(
&mut self,
ref_self: ArcRefCell<Self>,
damage_from_parent: AccessibilityDamage,
hidden: bool,
context: &AccessibilityContext<'_>,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate<'update>,
) -> LocalAccessibilityDamage
pub(super) fn update_subtree<'update>( &mut self, ref_self: ArcRefCell<Self>, damage_from_parent: AccessibilityDamage, hidden: bool, context: &AccessibilityContext<'_>, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate<'update>, ) -> LocalAccessibilityDamage
Update this node and its subtree based on damage from the DOM.
- First, if this node has damage from the DOM to be resolved, update the node from the DOM tree, recursively populating any new children.
- Next, recursively call this method for any children which are dirty, or have dirty descendants.
- Finally, update any properties on this node which are may have changed due to other changes in the tree.
At the end of this method, both has_dirty_descendants and is_dirty should be false for
this node and all its descendants.
Sourcepub(super) fn update_ancestors(
&self,
local_damage: LocalAccessibilityDamage,
update: &mut AccessibilityUpdate<'_>,
)
pub(super) fn update_ancestors( &self, local_damage: LocalAccessibilityDamage, update: &mut AccessibilityUpdate<'_>, )
Update each of this node’s ancestors based on changes which have already been applied in the tree.
pub(super) fn initialize_from_dom_node( &mut self, dom_node: &ServoLayoutNode<'_>, )
Sourcefn update_properties_and_children_from_dom_node<'update>(
&mut self,
ref_self: &ArcRefCell<Self>,
dom_node: &ServoLayoutNode<'update>,
dom_damage: AccessibilityDamage,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate<'update>,
) -> LocalAccessibilityDamage
fn update_properties_and_children_from_dom_node<'update>( &mut self, ref_self: &ArcRefCell<Self>, dom_node: &ServoLayoutNode<'update>, dom_damage: AccessibilityDamage, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate<'update>, ) -> LocalAccessibilityDamage
Update the given AccessibilityNode from its corresponding DOM node and
AccessibilityDamage.
If it has new children, those will be created here, but not yet populated.
Sourcefn update_children_from_dom_node<'update>(
&mut self,
ref_self: &ArcRefCell<AccessibilityNode>,
dom_node: &ServoLayoutNode<'update>,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate<'update>,
) -> LocalAccessibilityDamage
fn update_children_from_dom_node<'update>( &mut self, ref_self: &ArcRefCell<AccessibilityNode>, dom_node: &ServoLayoutNode<'update>, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate<'update>, ) -> LocalAccessibilityDamage
Update this node’s Self::children from its corresponding DOM node.
If it has new children, those will be created here, but not yet populated.
Sourcefn update_properties_from_dom_node(
&mut self,
dom_node: &ServoLayoutNode<'_>,
) -> LocalAccessibilityDamage
fn update_properties_from_dom_node( &mut self, dom_node: &ServoLayoutNode<'_>, ) -> LocalAccessibilityDamage
Update this node’s properties from its corresponding DOM node.
Sourcefn update_node_from_layout(
&mut self,
dom_node: &ServoLayoutNode<'_>,
layout_damage: AccessibilityDamage,
hidden: bool,
context: &AccessibilityContext<'_>,
update: &mut AccessibilityUpdate<'_>,
) -> LocalAccessibilityDamage
fn update_node_from_layout( &mut self, dom_node: &ServoLayoutNode<'_>, layout_damage: AccessibilityDamage, hidden: bool, context: &AccessibilityContext<'_>, update: &mut AccessibilityUpdate<'_>, ) -> LocalAccessibilityDamage
Update this node’s bounds from the current layout geometry.
Sourcefn update_node_local(
&mut self,
local_damage: LocalAccessibilityDamage,
update: &mut AccessibilityUpdate<'_>,
) -> LocalAccessibilityDamage
fn update_node_local( &mut self, local_damage: LocalAccessibilityDamage, update: &mut AccessibilityUpdate<'_>, ) -> LocalAccessibilityDamage
Update this node’s properties based on changes already made to the accessibility tree.
For example, if there were nodes added or removed in its subtree, its computed text may have
changed, so that will be recomputed here.
If any changes are made, add this node to the given AccessibilityUpdate.
fn label_from_descendants(&self) -> Option<String>
pub(super) fn print(&self, print_tree: &mut PrintTree, tree: &AccessibilityTree)
pub(super) fn clone_accesskit_node(&self) -> Node
pub(super) fn id(&self) -> NodeId
pub(super) fn opaque_node(&self) -> Option<OpaqueNode>
pub(super) fn dirty_state(&self) -> DirtyState
pub(super) fn add_dirty_state(&mut self, state: DirtyState)
pub(super) fn remove_dirty_state(&mut self, state: DirtyState)
pub(super) fn parent(&self) -> Option<ArcRefCell<AccessibilityNode>>
pub(super) fn children( &self, ) -> impl DoubleEndedIterator<Item = &ArcRefCell<AccessibilityNode>>
pub(super) fn ancestors( &self, ) -> impl Iterator<Item = ArcRefCell<AccessibilityNode>>
pub(super) fn child_ids(&self) -> &[NodeId]
pub(super) fn set_scroll_offset( &mut self, offset: LayoutVector2D, update: &mut AccessibilityUpdate<'_>, )
pub(super) fn role(&self) -> Role
pub(super) fn set_role(&mut self, role: Role) -> LocalAccessibilityDamage
fn label(&self) -> Option<&str>
fn set_label(&mut self, label: &str) -> LocalAccessibilityDamage
fn clear_label(&mut self) -> LocalAccessibilityDamage
fn html_tag(&self) -> Option<&str>
fn set_html_tag(&mut self, html_tag: &str)
fn value(&self) -> Option<&str>
fn set_value(&mut self, value: &str) -> LocalAccessibilityDamage
fn bounds(&self) -> Option<Rect>
fn set_bounds(&mut self, bounds: Rect)
fn clear_bounds(&mut self)
fn set_transform(&mut self, transform: Affine)
fn clear_transform(&mut self)
pub(super) fn assert_integrity( &self, expected_parent: Option<WeakRefCell<AccessibilityNode>>, )
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AccessibilityNode
impl !UnwindSafe for AccessibilityNode
impl Freeze for AccessibilityNode
impl Send for AccessibilityNode
impl Sync for AccessibilityNode
impl Unpin for AccessibilityNode
impl UnsafeUnpin for AccessibilityNode
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
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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