Accessibility/DOMTreeMapping: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(4 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) | |||
=Details= | =Details= | ||
==What we need that for?== | ==What we need that for?== | ||
The mapping of DOM tree to accessible tree is | The mapping of DOM tree to accessible tree is performed for following proposes: | ||
#content insertion | #content insertion | ||
##find insertion point | ##find insertion point | ||
Line 22: | Line 23: | ||
==Accessible tree== | ==Accessible tree== | ||
Accessible object manages its children. There are several types of accessibles: | Accessible object manages its children. There are several types of accessibles: | ||
# | #Extended DOM tree traversal | ||
#Not based on DOM tree traversal | |||
##outerdoc accessible | ##outerdoc accessible | ||
##leaf accessibles | ##leaf accessibles | ||
##HTML combobox (combobox list accessible) | |||
##XUL trees | |||
#DOM nodes adoption | #DOM nodes adoption | ||
##imagemap | ##imagemap | ||
##HTML selects, get accessible from optgroups | |||
#change insertion point relative DOM tree order | #change insertion point relative DOM tree order | ||
##HTML table moves HTML caption | ##HTML table moves HTML caption | ||
# | #Based on DOM tree traversal and own accessible | ||
##listitem (listbullet and listitem content) | ##listitem (listbullet and listitem content) | ||
==Notifications== | ==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== | ==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? |
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?