struct AccessibilityNode {
id: NodeId,
accesskit_node: Node,
parent_node: Option<WeakRefCell<AccessibilityNode>>,
child_nodes: Vec<ArcRefCell<AccessibilityNode>>,
opaque_node: Option<OpaqueNode>,
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.
dirty_state: DirtyStateAny dirty state for the current update.
Implementations§
Source§impl AccessibilityNode
impl AccessibilityNode
fn new(id: NodeId) -> Self
fn new_with_role(id: NodeId, role: Role) -> Self
Sourcefn update_subtree<'dom>(
&mut self,
ref_self: ArcRefCell<Self>,
dom_damage_map: &mut FxHashMap<NodeId, (ServoLayoutNode<'dom>, AccessibilityDamage)>,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate,
) -> LocalAccessibilityDamage
fn update_subtree<'dom>( &mut self, ref_self: ArcRefCell<Self>, dom_damage_map: &mut FxHashMap<NodeId, (ServoLayoutNode<'dom>, AccessibilityDamage)>, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate, ) -> 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.
Sourcefn update_ancestors(
&self,
local_damage: LocalAccessibilityDamage,
update: &mut AccessibilityUpdate,
)
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.
Sourcefn update_node_and_populate_new_descendants_from_dom_node<'dom>(
&mut self,
ref_self: ArcRefCell<Self>,
dom_node: &ServoLayoutNode<'dom>,
dom_damage: AccessibilityDamage,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate,
) -> LocalAccessibilityDamage
fn update_node_and_populate_new_descendants_from_dom_node<'dom>( &mut self, ref_self: ArcRefCell<Self>, dom_node: &ServoLayoutNode<'dom>, dom_damage: AccessibilityDamage, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate, ) -> LocalAccessibilityDamage
Update the given AccessibilityNode from its corresponding DOM node and
AccessibilityDamage.
If it has new children, those will be recursively populated here.
Sourcefn update_children_and_populate_new_descendants_from_dom_node<'dom>(
&mut self,
ref_self: ArcRefCell<AccessibilityNode>,
dom_node: &ServoLayoutNode<'dom>,
dom_damage: AccessibilityDamage,
tree: &mut AccessibilityTree,
update: &mut AccessibilityUpdate,
) -> LocalAccessibilityDamage
fn update_children_and_populate_new_descendants_from_dom_node<'dom>( &mut self, ref_self: ArcRefCell<AccessibilityNode>, dom_node: &ServoLayoutNode<'dom>, dom_damage: AccessibilityDamage, tree: &mut AccessibilityTree, update: &mut AccessibilityUpdate, ) -> LocalAccessibilityDamage
Update this node’s Self::children from its corresponding DOM node. If any children are
newly added to the tree, populate them and recursively populate their children.
Sourcefn update_properties_from_dom_node(
&mut self,
dom_node: &ServoLayoutNode<'_>,
dom_damage: AccessibilityDamage,
) -> LocalAccessibilityDamage
fn update_properties_from_dom_node( &mut self, dom_node: &ServoLayoutNode<'_>, dom_damage: AccessibilityDamage, ) -> LocalAccessibilityDamage
Update this node’s properties from its corresponding DOM node.
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>
fn print(&self, print_tree: &mut PrintTree)
fn parent(&self) -> Option<ArcRefCell<AccessibilityNode>>
fn children( &self, ) -> impl DoubleEndedIterator<Item = &ArcRefCell<AccessibilityNode>>
fn ancestors(&self) -> impl Iterator<Item = ArcRefCell<AccessibilityNode>>
fn child_ids(&self) -> &[NodeId]
fn role(&self) -> Role
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 assert_integrity( &self, expected_parent: Option<WeakRefCell<AccessibilityNode>>, )
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AccessibilityNode
impl !RefUnwindSafe for AccessibilityNode
impl Send for AccessibilityNode
impl Sync for AccessibilityNode
impl Unpin for AccessibilityNode
impl UnsafeUnpin for AccessibilityNode
impl !UnwindSafe 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
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
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