Confirmed users
1,396
edits
| Line 71: | Line 71: | ||
=Implementation Problems = | =Implementation Problems = | ||
== HTML static tables in ATK == | == <code> getIndexInParent</code> Method Synchronization == | ||
When we deal with tables then AT requires the method <code>getIndexInParent</code> of accessible object should be synchronized with the methods of accessible table. It's valid for ATK but it makes sense as well for IA2 as well. In details, when <code>getIndexInParent</code> called on the table cell should return index that is used in <code>getRowAtIndex</code> and <code>getColumnAtIndex</code> methods. This rule assumes the table cells must be direct children of the table accessible. Firefox table implementation broke this rule in some cases. | |||
=== HTML static tables in ATK === | |||
Let's consider the following HTML table: | Let's consider the following HTML table: | ||
| Line 97: | Line 100: | ||
ATK specification requires <code>getIndexInParent</code> method should be synchronized with <code>getRowAtIndex and getColumnAtIndex</code>. Here we get the problem. We should expose accessible for html:tr element since it's accessible since it has ARIA role and therefore the rule above is broken. | ATK specification requires <code>getIndexInParent</code> method should be synchronized with <code>getRowAtIndex and getColumnAtIndex</code>. Here we get the problem. We should expose accessible for html:tr element since it's accessible since it has ARIA role and therefore the rule above is broken. | ||
== List Tables in MSAA/IA2 == | === List Tables in MSAA/IA2 === | ||
It was mentioned above tables in MSAA/IA2 are exposed as lists. Since table cells can contain anything then we can't expose just name and description on table accessible and we should expose accessible for table, table rows and table cells. Therefore we will broke synchronization of <code>IAccessibleTable</code> interface methods with <code>getIndexInParent</code> method like we have for the case of static HTML table in ATK. | It was mentioned above tables in MSAA/IA2 are exposed as lists. Since table cells can contain anything then we can't expose just name and description on table accessible and we should expose accessible for table, table rows and table cells. Therefore we will broke synchronization of <code>IAccessibleTable</code> interface methods with <code>getIndexInParent</code> method like we have for the case of static HTML table in ATK. | ||
Currently XUL tree is exposed | === Outline in MSAA/IA2 === | ||
Currently XUL tree is exposed as outline. We don't expose all cells but primary one only. Therefore we lost the some information (for example bug 360510 where cell with checkbox isn't exposed). | |||
=== Possible approaches === | |||
We can't extend ATK and IA2 in order to add new method instead of <code>getIndexParent</code> so we could use accessible attributes to put index in table on the cell. The disadvantage of the approach is the requirement to parse attribute string. Another disadvantages is old screen readers won't work with that. | |||