Accessibility/TextAttributes
Jump to navigation
Jump to search
<< Back to Accessibility Home Page
Attribute list
Gecko specific
| Attribute name | Attribute description | Text attribute | Default text attribute |
|---|---|---|---|
| direction | rtl or ltr for bidi text | Yes | Yes |
| border | not sure how best to expose these properties, or whether to (same with outline CSS property) | Yes | |
| language | What language is this text in, e.g. en-US | Yes | Yes |
| misspelled | "true" if it is marked by the inline spell checker for being incorrectly spelled (Note: in most cases a special underlining style will accompany this mark, and the underlining+style should also be exposed as a decoration attribute) | Yes | |
| static | "true" for list bullet/numbering text or layout-inserted text (such as via CSS pseudo styles :before or :after) | Yes | |
| z-index | a number which indicates how low/high an element is | Yes |
IA2 proposed
| Attribute name | Attribute description | Text attribute | Default text attribute |
|---|---|---|---|
| background-color | Background color as u, u, u | Yes | Yes |
| color | Foreground color as u, u, u | Yes | Yes |
| font-family | The computed font name | Yes | Yes |
| font-size | Font size in pixels | Yes | Yes |
| font-style | normal/italic/oblique | Yes | Yes |
| font-weight | The computed font weight, as a number | Yes | Yes |
| text-line-through-mode | continuous | Yes | Yes (empty implies none) |
| text-line-through-style | none/solid | Yes | Yes (empty implies none) |
| text-line-through-type | none/single | Yes | Yes (empty implies none) |
| text-underline-mode | none/continuous | Yes | Yes (empty implies none) |
| text-underline-style | none/solid | Yes | Yes (empty implies none) |
| text-underline-type | none/single | Yes | Yes (empty implies none) |
| text-underline-width | none/normal | Yes | Yes (empty implies none) |
| line-height | CSS2 | Yes | Yes (empty implies none) |
| margin-bottom | CSS2 | Yes | Yes (empty implies none) |
| margin-left | CSS2 | Yes | Yes (empty implies none) |
| margin-right | CSS2 | Yes | Yes (empty implies none) |
| text-align | left/center/right/justify | Yes | Yes |
| text-indent | CSS2 | Yes | Yes (empty implies none) |
Proposed API
Summary
Returns a collection of text attributes at the given offset. Calculates the range where returned attributes are stretched.
nsIPersistentProperties getTextAttributes(in long offset,
out long rangeStartOffset,
out long rangeEndOffset);
Parameters
- offset
- [in] the given offset
- rangeStartOffset
- [out] the start offset of the result range
- rangeEndOffset
- [out] the end offset of the result range
Return Value
A collection of text attributes (the list of pairs consisted from name and value).
Questions
- What is the range hierarchy: are range nested or consecutive? Let we have a text 'abcdefghi'. If ranges are nested then we have two ranges: (0,9) and (3,6). If ranges are consecutive then we have three ranges (0, 3), (3, 6) and (6, 9).
- Should text attributes in a range be either relative to a parent (in the case of nested ranges) or previous (in the case of consecutive ranges) range or cumulative?
Events
Summary
When a certain text attribute is changed then 'EVENT_TEXT_ATTRIBUTE_CHANGED' event should be fired.
Questions
- How will AT know what attribute has been changed? Should the getTextAttributes() method return only last changed attribute?
- It's not clear how to track CSS style changes mapped to text attributes. Possibly some of those changes will lead accessible is recreated.
References
- IA2 Text Attributes - IAccessible2 Text Attributes Documentation