DPub AAM 1.0 Testable Statements

From W3C Wiki

Introduction

Assumptions about Testing DPub ARIA 1.0 Features

  1. For new, non-global properties: We need a test for each role that supports that new property.
    • Rationale: We cannot assume that user agents use our taxonomy programmatically in their implementations. Thus for non-global properties, there's an excellent chance t we won't get the implementation "for free"; instead, user agents will likely have to add new support on a per-role basis.
  2. For new, global properties: We just need to test one representative role, plus any role for which there is special/custom behavior related to that property.
    • Rationale: Global properties without role-specific special/custom behavior is something we can assume user agents will not be implementing on a per-role basis. Thus because the implementation itself is likely to be global, exhaustive testing is not needed.
  3. For new roles: We just need to test non-global properties supported on those roles.
    • Rationale: See rationales 1 and 2 above.

Overview

  • The following testable statements are the tests needed for exiting DPub ARIA 1.0 Candidate Recommendation
  • The format in use in this file is:
=== UNIQUE NAME FOR THE TEST ===
* List documenting purpose of test

; // name of thing(s) being tested (can be used as name of test case)
<pre>
if given
  <element>some HTML fragment
  </element>
then CONDITIONS FOR TEST
</pre>
{| class="wikitable"
#### OPTIONAL
|-
|colspan=5|element ELEMENT_ID
|-
|colspan=5|attribute ELEMENT_ID:ATTR_NAME set "value"
|-
|colspan=5|attribute ELEMENT_ID:ATTR_OTHER_NAME clear
####
|-
|rowspan=NUMBER OF CONDITIONS|NAME OF API
|TEST CLASS
|TEST TYPE
|ASSERTION TYPE
|VALUE
... etc...
|}
  • "NAME OF API" is one of (MSAA, AXAPI, UIA, IAccessible2, or ATK)
  • "TEST CLASS" is one of (property, result, event, or TBD (to be determined))
  • "TEST TYPE" is dependent upon "TEST CLASS"
    • PROPERTY then one of (name, description, childCount, role, subrole, parentID, relations, states, controlPatterns, interfaces, or objectAttributes)
    • RESULT then an expression or method call (e.g., Selection.clear_selection())
    • EVENT @@@TODO@@@
  • ASSERTION TYPE is one of (is, isNot, contains, doesNotContain, isType, isAny)
  • VALUE is the value or values to evaluate using ASSERTION TYPE. If multiple values, enclose in brackets and separate with commas (e.g. [value1, value2, value3])

The TEST CLASS of event is special in that the each occurrence of the TEST TYPE type establishes a context for the next event rows in the table. Each subsequent event row is an assertion about an event of the type referenced in that first special row. That context continues until the end of the table, until a row that is NOT an event assertion, or until a row that is an event but with a TEST TYPE of type.

There can be more than one element being tested in an assertion table. When there is, each group of assertions should begin with a row specifying that ID.

NOTE: All of these things are extensible. The list of PROPERTY values, for example, will surely need to be expanded over time as additional platform ATTAs are implemented.

Example (Dont Generate)

When the selected item changes in a listbox, ATK/AT-SPI2 expects the following:

  1. object:selection-changed emitted by the listbox
  2. object:state-changed:selected, with detail1 = 0 emitted by the item(s) which became unselected
  3. object:state-changed:selected, with detail1 = 1 emitted by the item(s) which became selected

To test this, we could use the following markup and table:

  <div id="test" role="listbox" tabindex="0">
    <div id="item1" role="option" aria-selected="true">First</div>
    <div id="item2" role="option" aria-selected="false">Second</div>
  </div>
attribute item1:aria-selected "false"
attribute item2:aria-selected "true"
element test
ATK event type is object:selection-changed
element item1
ATK property states doesNotContain STATE_SELECTED
event type is object:state-changed:selected
event detail1 is 0
element item2
ATK property states contains STATE_SELECTED
event type is object:state-changed:selected
event detail1 is 1

The first two rows in the above table specify that both ARIA properties should be changed before proceeding with the test assertions, i.e. as a single step. The rows that follow identify the element being tested, any expected changes to accessible properties, and the expected accessibility events that element should emit.

DPub AAM 1.0 Roles

The following roles are defined DPub ARIA and have mappings in the AAM.


doc-abstract

if given
  <div role="doc-abstract" id="test">Text</div>
then expose a role of doc-abstract for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-abstract
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-abstract
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is abstract

doc-acknowledgments

if given
  <div role="doc-acknowledgments" id="test">Text</div>
then expose a role of doc-acknowledgments for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-acknowledgments
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-acknowledgments
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is acknowledgments
property landmarkType is Custom
property LocalizedLandmarkType is acknowledgments

doc-afterword

if given
  <div role="doc-afterword" id="test">Text</div>
then expose a role of doc-afterword for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-afterword
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-afterword
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is afterword
property landmarkType is Custom
property LocalizedLandmarkType is afterword

doc-appendix

if given
  <div role="doc-appendix" id="test">Text</div>
then expose a role of doc-appendix for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-appendix
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-appendix
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is appendix
property landmarkType is Custom
property LocalizedLandmarkType is appendix

doc-backlink

if given
  <div role="doc-backlink" id="test">
      <div id="child">child 1</div>
  </div>
then expose a role of doc-backlink for the element with id of test
element test
ATK property role is ROLE_LINK
property objectAttributes contains xml-roles:doc-backlink
AXAPI property AXRole is AXLink
property AXSubrole is <nil>
property AXRoleDescription is link
IAccessible2 property objectAttributes contains xml-roles:doc-backlink
property interfaces contains IAccessibleHypertext2
MSAA property role is ROLE_SYSTEM_LINK
property states contains STATE_LINKED
UIA property ControlType is Text
property LocalizedControlType is backlink
element child
MSAA property states contains STATE_LINKED

doc-biblioentry

if given
  <div role="doc-biblioentry" id="test">Text</div>
then expose a role of doc-biblioentry for the element with id of test
element test
ATK property role is ROLE_LIST_ITEM
property objectAttributes contains xml-roles:doc-biblioentry
AXAPI property AXRole is AXGroup
property AXSubrole is <nil>
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-biblioentry
MSAA property role is ROLE_SYSTEM_LISTITEM
property states contains STATE_SYSTEM_READONLY
UIA property ControlType is Text
property LocalizedControlType is biblioentry

doc-bibliography

if given
  <div role="doc-bibliography" id="test">Text</div>
then expose a role of doc-bibliography for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-bibliography
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-bibliography
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is bibliography
property landmarkType is Custom
property LocalizedLandmarkType is bibliography

doc-biblioref

if given
  <div role="doc-biblioref" id="test">
      <div id="child">child 1</div>
  </div>
then expose a role of doc-biblioref for the element with id of test
element test
ATK property role is ROLE_LINK
property objectAttributes contains xml-roles:doc-biblioref
AXAPI property AXRole is AXLink
property AXSubrole is <nil>
property AXRoleDescription is link
IAccessible2 property objectAttributes contains xml-roles:doc-biblioref
property interfaces contains IAccessibleHypertext2
MSAA property role is ROLE_SYSTEM_LINK
property states contains STATE_LINKED
UIA property ControlType is Text
property LocalizedControlType is biblioref
element child
MSAA property states contains STATE_LINKED

doc-chapter

if given
  <div role="doc-chapter" id="test">Text</div>
then expose a role of doc-chapter for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-chapter
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-chapter
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is chapter
property landmarkType is Custom
property LocalizedLandmarkType is chapter

doc-colophon

if given
  <div role="doc-colophon" id="test">Text</div>
then expose a role of doc-colophon for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-colophon
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-colophon
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is colophon

doc-conclusion

if given
  <div role="doc-conclusion" id="test">Text</div>
then expose a role of doc-conclusion for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-conclusion
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-conclusion
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is conclusion
property landmarkType is Custom
property LocalizedLandmarkType is conclusion

doc-cover

if given
  <div role="doc-cover" id="test">Text</div>
then expose a role of doc-cover for the element with id of test
element test
ATK property role is ROLE_IMAGE
property objectAttributes contains xml-roles:doc-cover
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXRoleDescription is image
IAccessible2 property objectAttributes contains xml-roles:doc-cover
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property ControlType is Image

doc-credit

if given
  <div role="doc-credit" id="test">Text</div>
then expose a role of doc-credit for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-credit
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-credit
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is credit

doc-credits

if given
  <div role="doc-credits" id="test">Text</div>
then expose a role of doc-credits for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-credits
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-credits
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is credits
property landmarkType is Custom
property LocalizedLandmarkType is credits

doc-dedication

if given
  <div role="doc-dedication" id="test">Text</div>
then expose a role of doc-dedication for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-dedication
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-dedication
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is dedication

doc-endnote

if given
  <div role="doc-endnote" id="test">Text</div>
then expose a role of doc-endnote for the element with id of test
element test
ATK property role is ROLE_LIST_ITEM
property objectAttributes contains xml-roles:doc-endnote
AXAPI property AXRole is AXGroup
property AXSubrole is <nil>
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-endnote
MSAA property role is ROLE_SYSTEM_LISTITEM
property states contains STATE_SYSTEM_READONLY
UIA property ControlType is Text
property LocalizedControlType is endnote

doc-endnotes

if given
  <div role="doc-endnotes" id="test">Text</div>
then expose a role of doc-endnotes for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-endnotes
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-endnotes
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is endnotes
property landmarkType is Custom
property LocalizedLandmarkType is endnotes

doc-epigraph

if given
  <div role="doc-epigraph" id="test">Text</div>
then expose a role of doc-epigraph for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-epigraph
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-epigraph
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is epigraph

doc-epilogue

if given
  <div role="doc-epilogue" id="test">Text</div>
then expose a role of doc-epilogue for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-epilogue
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-epilogue
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is epilogue
property landmarkType is Custom
property LocalizedLandmarkType is epilogue

doc-errata

if given
  <div role="doc-errata" id="test">Text</div>
then expose a role of doc-errata for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-errata
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-errata
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is errata
property landmarkType is Custom
property LocalizedLandmarkType is errata

doc-example

if given
  <div role="doc-example" id="test">Text</div>
then expose a role of doc-example for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-example
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-example
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is example

doc-footnote

if given
  <div role="doc-footnote" id="test">Text</div>
then expose a role of doc-footnote for the element with id of test
element test
ATK property role is ROLE_FOOTNOTE
property objectAttributes contains xml-roles:doc-footnote
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-footnote
property role is IA2_ROLE_FOOTNOTE
UIA property ControlType is Text
property LocalizedControlType is footnote

doc-foreword

if given
  <div role="doc-foreword" id="test">Text</div>
then expose a role of doc-foreword for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-foreword
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-foreword
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is foreword
property landmarkType is Custom
property LocalizedLandmarkType is foreword

doc-glossary

if given
  <div role="doc-glossary" id="test">Text</div>
then expose a role of doc-glossary for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-glossary
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-glossary
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is glossary
property landmarkType is Custom
property LocalizedLandmarkType is glossary

doc-glossref

if given
  <div role="doc-glossref" id="test">
      <div id="child">child 1</div>
  </div>
then expose a role of doc-glossref for the element with id of test
element test
ATK property role is ROLE_LINK
property objectAttributes contains xml-roles:doc-glossref
AXAPI property AXRole is AXLink
property AXSubrole is <nil>
property AXRoleDescription is link
IAccessible2 property objectAttributes contains xml-roles:doc-glossref
property interfaces contains IAccessibleHypertext2
MSAA property role is ROLE_SYSTEM_LINK
property states contains STATE_LINKED
UIA property ControlType is Text
property LocalizedControlType is glossref
element child
MSAA property states contains STATE_LINKED

doc-index

if given
  <div role="doc-index" id="test">Text</div>
then expose a role of doc-index for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-index
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkNavigation
property AXRoleDescription is navigation
IAccessible2 property objectAttributes contains xml-roles:doc-index
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is index
property landmarkType is Custom
property LocalizedLandmarkType is index

doc-introduction

if given
  <div role="doc-introduction" id="test">Text</div>
then expose a role of doc-introduction for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-introduction
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-introduction
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is introduction
property landmarkType is Custom
property LocalizedLandmarkType is introduction

doc-noteref

if given
  <div role="doc-noteref" id="test">
      <div id="child">child 1</div>
  </div>
then expose a role of doc-noteref for the element with id of test
element test
ATK property role is ROLE_LINK
property objectAttributes contains xml-roles:doc-noteref
AXAPI property AXRole is AXLink
property AXSubrole is <nil>
property AXRoleDescription is link
IAccessible2 property objectAttributes contains xml-roles:doc-noteref
property interfaces contains IAccessibleHypertext2
MSAA property role is ROLE_SYSTEM_LINK
property states contains STATE_LINKED
UIA property ControlType is Text
property LocalizedControlType is noteref
element child
MSAA property states contains STATE_LINKED

doc-notice

if given
  <div role="doc-notice" id="test">Text</div>
then expose a role of doc-notice for the element with id of test
element test
ATK property role is ROLE_COMMENT
property objectAttributes contains xml-roles:doc-notice
AXAPI property AXRole is AXGroup
property AXSubrole is AXDocumentNote
property AXRoleDescription is note
IAccessible2 property objectAttributes contains xml-roles:doc-notice
property role is IA2_ROLE_NOTE
UIA property ControlType is Text
property LocalizedControlType is notice

doc-pagebreak

if given
  <div role="doc-pagebreak" id="test">Text</div>
then expose a role of doc-pagebreak for the element with id of test
element test
ATK property role is ROLE_SEPARATOR
property objectAttributes contains xml-roles:doc-pagebreak
AXAPI property AXRole is AXSplitter
property AXSubrole is <nil>
property AXRoleDescription is splitter
IAccessible2 property objectAttributes contains xml-roles:doc-pagebreak
MSAA property role is ROLE_SYSTEM_SEPARATOR
UIA property ControlType is Text
property LocalizedControlType is pagebreak

doc-pagelist

if given
  <div role="doc-pagelist" id="test">Text</div>
then expose a role of doc-pagelist for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-pagelist
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkNavigation
property AXRoleDescription is navigation
IAccessible2 property objectAttributes contains xml-roles:doc-pagelist
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is pagelist
property landmarkType is Custom
property LocalizedLandmarkType is pagelist

doc-part

if given
  <div role="doc-part" id="test">Text</div>
then expose a role of doc-part for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-part
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-part
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is part
property landmarkType is Custom
property LocalizedLandmarkType is part

doc-preface

if given
  <div role="doc-preface" id="test">Text</div>
then expose a role of doc-preface for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-preface
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-preface
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is preface
property landmarkType is Custom
property LocalizedLandmarkType is preface

doc-prologue

if given
  <div role="doc-prologue" id="test">Text</div>
then expose a role of doc-prologue for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-prologue
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkRegion
property AXRoleDescription is region
IAccessible2 property objectAttributes contains xml-roles:doc-prologue
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is prologue
property landmarkType is Custom
property LocalizedLandmarkType is prologue

doc-pullquote

if given
  <div role="doc-pullquote" id="test">Text</div>
then expose a role of doc-pullquote for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-pullquote
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-pullquote
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is pullquote

doc-qna

if given
  <div role="doc-qna" id="test">Text</div>
then expose a role of doc-qna for the element with id of test
element test
ATK property role is ROLE_SECTION
property objectAttributes contains xml-roles:doc-qna
AXAPI property AXRole is AXGroup
property AXSubrole is AXApplicationGroup
property AXRoleDescription is group
IAccessible2 property objectAttributes contains xml-roles:doc-qna
property role is IA2_ROLE_SECTION
UIA property ControlType is Text
property LocalizedControlType is qna

doc-subtitle

if given
  <div role="doc-subtitle" id="test">Text</div>
then expose a role of doc-subtitle for the element with id of test
element test
ATK property role is ROLE_HEADING
property objectAttributes contains xml-roles:doc-subtitle
AXAPI property AXRole is AXHeading
property AXSubrole is <nil>
property AXRoleDescription is heading
IAccessible2 property objectAttributes contains xml-roles:doc-subtitle
property role is IA2_ROLE_HEADING
UIA property ControlType is Text
property LocalizedControlType is subtitle

doc-tip

if given
  <div role="doc-tip" id="test">Text</div>
then expose a role of doc-tip for the element with id of test
element test
ATK property role is ROLE_COMMENT
property objectAttributes contains xml-roles:doc-tip
AXAPI property AXRole is AXGroup
property AXSubrole is AXDocumentNote
property AXRoleDescription is note
IAccessible2 property objectAttributes contains xml-roles:doc-tip
property role is IA2_ROLE_NOTE
UIA property ControlType is Text
property LocalizedControlType is tip

doc-toc

if given
  <div role="doc-toc" id="test">Text</div>
then expose a role of doc-toc for the element with id of test
element test
ATK property role is ROLE_LANDMARK
property objectAttributes contains xml-roles:doc-toc
AXAPI property AXRole is AXGroup
property AXSubrole is AXLandmarkNavigation
property AXRoleDescription is navigation
IAccessible2 property objectAttributes contains xml-roles:doc-toc
property role is IA2_ROLE_LANDMARK
UIA property ControlType is Text
property LocalizedControlType is toc
property landmarkType is Custom
property LocalizedLandmarkType is toc