office-accessibility message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Re: accessibility of ODF lists
- From: Richard Schwerdtfeger <schwer@us.ibm.com>
- To: office-accessibility@lists.oasis-open.org
- Date: Fri, 24 Feb 2006 14:15:41 -0600
I found another accessibility problem with ODF. As I have been discussing for tables, we need structural information and the other such place where have problems is lists. Lists are totally dependent on styling vs. structure to address indention levels which means the blind user cannot tell that they are in sub-bulleted lists. Basically now we have a set of list items with indention lengths in inches.
So, given the following example:
●This is a list item
●This is a nested list item
●This is another nested list item
●This is another list item
You want to know that:
This is a nested list item, this is another nested list item are children of This is a list item
A HTML technique to address this is to use UL and LI elements to create a container model from which structure can be determined as follows:
<ul>
<li>this is a list item
<ul>
<li>this is a nested list item</li>
<li>this is another nested list item</li>
</ul>
</li>
<li>This is another list item </li>
</ul>
A screen reader can now provide the user with how deep in the list the user is and how man list items are at the level. Can we introduce the concepts of ordered and unordered lists inside ODF vs. the styling solution?Chieko, have you effectively addressed this in your research project which process the UNO DOM?
The ODF equivalent of above is as follows - you will note that the styling information cannot be used to determine levels:
- <text:list text:style-name="L1">
- <text:list-item>
<text:p text:style-name="P1">This is a list item</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">This is a nested list item</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">This is another nested list item</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P3">This is another list item</text:p>
</text:list-item>
Here is the style inforamtion for L1
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard" style:list-style-name="L1" />
- <style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard" style:list-style-name="L1">
<style:paragraph-properties fo:margin-left="0.4925in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false" />
</style:style>
- <style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard" style:list-style-name="L1">
<style:paragraph-properties fo:margin-left="0in" fo:margin-right="0in" fo:text-indent="0in" style:auto-text-indent="false" />
</style:style>
<text:list-style style:name="L1">
- <text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="0.1972in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="0.3937in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="0.5909in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="0.7874in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="0.9846in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="1.1815in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="1.3787in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="1.5752in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
- <text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" style:num-suffix="." text:bullet-char="•">
<style:list-level-properties text:space-before="1.7724in" text:min-label-width="0.1965in" />
<style:text-properties style:font-name="StarSymbol" />
</text:list-level-style-bullet>
</text:list-style>
</office:automatic-styles>
Rich Schwerdtfeger
Distinguished Engineer, SWG Accessibility Architect/Strategist
Chair, IBM Accessibility Architecture Review Board
blog: http://www-106.ibm.com/developerworks/blogs/dw_blog.jspa?blog=441
"Two roads diverged in a wood, and I -
I took the one less traveled by, and that has made all the difference.", Frost
Pete Brunet/Austin/IBM
Pete Brunet/Austin/IBM
02/23/2006 01:15 PM
|
|
Rich, Should the ODF AccSC talk about the problem with lists, at least from the point of view of producing "informative" text?
One scenario is text that looks like this
- This is a list item.
- This is a nested list item.
- This is another nested list item.
- This is another list item.
SODC creates the following tree
Role: DOCUMENT
Role: PARAGRAPH, IAccessibleText::text="•This is a list item."
Role: PARAGRAPH, IAccessibleText::text="•This is a nested list item."
Role: PARAGRAPH, IAccessibleText::text="•This is another nested list item."
Role: PARAGRAPH, IAccessibleText::text="•This is another list item."
Which is not surprising because SODC and OOo2 create the following XML (cleaned up for clarity). There is one list with 4 list items. The sublists are exposed through styling not through lists within lists. It's more clear in the second XML fragment.
OOo 2
- <office:body>
- <office:text>
- <text:list text:style-name="L1">
- <text:list-item>
- <text:p text:style-name="P1">
<text:span text:style-name="T1">This is the first item</text:span>
</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">and this is a sub item</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">and another one</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P3">and the second</text:p>
</text:list-item>
</text:list>
</office:text>
</office:body>
SODC
- <office:body>
- <office:text>
- <text:list text:style-name="L1">
- <text:list-item>
<text:p text:style-name="P1">This is a list item.</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">This is a nested list item.</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P2">This is another nested list item.</text:p>
</text:list-item>
- <text:list-item>
<text:p text:style-name="P1">This is another list item.</text:p>
</text:list-item>
</text:list>
</office:text>
</office:body>
Here is another example:
- a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text - a list item with a lot of text
a paragraph that is part of the list item but only known due to indentation
- another list item
By generating good XML I think this case can be exposed correctly, i.e. with the paragraph being a child of the list and siblings of the list items.
Another related and common situation which is found when not using lists is
Some text at this level
and then a quotation indented below it
and then some more text at the original level
How should ODF present this? Could the exposure of indentation be useful if the tools like OOo/SO/SODC are not able to generate proper list structure. From a usability point of view, for ODF presenting indentation information rather than list structure is really not a problem like it is for list controls. As a reader of a doc, I don't need to know how many bullets there are or which one I am on. This is usually obvious from the accessible text. But even in the case of bulleted lists, the only thing I really need to know is the indentation of the current item in relation to the prior item.
Pete
=====
Pete Brunet, (512) 838-4594, TL 678-4594, FAX (512) 838-9666, brunet@us.ibm.com, ws4g
IBM Accessibility Architecture and Development
11501 Burnet Road, MS 9022E004, Austin, TX 78758
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]