Accessibility/DOMTreeMapping: Difference between revisions
Jump to navigation
Jump to search
(Created page with "=What is this= This document describes the mapping between DOM and accessibles trees. =Current state= Existing problems are: #Tree update bugs ##imagemap ##listbox #Unoptimal tr...") |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
##imagemap | ##imagemap | ||
##listbox | ##listbox | ||
#Unoptimal tree update | #Unoptimal tree update | ||
#Due to coalescence tree may be not shutdown (cycle collector works) | |||
=What we need that for?= | =Details= | ||
==What we need that for?== | |||
The mapping of DOM tree to accessible tree is performed for following proposes: | |||
#content insertion | #content insertion | ||
##find insertion point | |||
##traverse extended DOM tree | |||
#content removal | #content removal | ||
##find removal point or find removed accessible | |||
#DOM point to offset | #DOM point to offset | ||
##convert DOM selection into accessible text selection and caret | |||
= | ==Accessible tree== | ||
Accessible object manages its children. There are several types of accessibles: | |||
#Extended DOM tree traversal | |||
#Not based on DOM tree traversal | |||
##outerdoc accessible | |||
##leaf accessibles | |||
##HTML combobox (combobox list accessible) | |||
##XUL trees | |||
#DOM nodes adoption | |||
DOM | ##imagemap | ||
##HTML selects, get accessible from optgroups | |||
#change insertion point relative DOM tree order | |||
##HTML table moves HTML caption | |||
#Based on DOM tree traversal and own accessible | |||
##listitem (listbullet and listitem content) | |||
==Notifications== | |||
#standard notifications (standard processing) | |||
#XUL menu notifications (standard processing) | |||
#XUL listbox notifications (needs to implement) | |||
#XUL tree notifications (processed by XUL tree accessible) | |||
#imagemap notification (needs to implement) | |||
==Algorithms== | |||
insertion | ===Content insertion=== | ||
Each accessible is responsible for their children. | |||
#How to find insertion point of the inserted subtree (DOM tree and accessible tree ordering is different) | |||
#How to find adopted DOM nodes in the inserted subtree (DOM nodes adoption) | |||
#Fire related events like menupopup_start/alert when tree is created | |||
===Content removal=== | |||
#Traverse whole removed subtree to find adopted case? Should they have own mechanism to handle adopted things? | |||
#Find root accessibles within removed subtree, unattach from tree, and shutdown (don't rely on events in this). Fire related events like menupopup_end, alert, hide, reorder events. | |||
===DOM point to text offset=== | |||
How we should proceed the case of adopted children and changed order? | |||
Latest revision as of 09:01, 28 October 2011
What is this
This document describes the mapping between DOM and accessibles trees.
Current state
Existing problems are:
- Tree update bugs
- imagemap
- listbox
- Unoptimal tree update
- Due to coalescence tree may be not shutdown (cycle collector works)
Details
What we need that for?
The mapping of DOM tree to accessible tree is performed for following proposes:
- content insertion
- find insertion point
- traverse extended DOM tree
- content removal
- find removal point or find removed accessible
- DOM point to offset
- convert DOM selection into accessible text selection and caret
Accessible tree
Accessible object manages its children. There are several types of accessibles:
- Extended DOM tree traversal
- Not based on DOM tree traversal
- outerdoc accessible
- leaf accessibles
- HTML combobox (combobox list accessible)
- XUL trees
- DOM nodes adoption
- imagemap
- HTML selects, get accessible from optgroups
- change insertion point relative DOM tree order
- HTML table moves HTML caption
- Based on DOM tree traversal and own accessible
- listitem (listbullet and listitem content)
Notifications
- standard notifications (standard processing)
- XUL menu notifications (standard processing)
- XUL listbox notifications (needs to implement)
- XUL tree notifications (processed by XUL tree accessible)
- imagemap notification (needs to implement)
Algorithms
Content insertion
Each accessible is responsible for their children.
- How to find insertion point of the inserted subtree (DOM tree and accessible tree ordering is different)
- How to find adopted DOM nodes in the inserted subtree (DOM nodes adoption)
- Fire related events like menupopup_start/alert when tree is created
Content removal
- Traverse whole removed subtree to find adopted case? Should they have own mechanism to handle adopted things?
- Find root accessibles within removed subtree, unattach from tree, and shutdown (don't rely on events in this). Fire related events like menupopup_end, alert, hide, reorder events.
DOM point to text offset
How we should proceed the case of adopted children and changed order?