c3d2-web/html5-syntax/aria.rng

1675 lines
47 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="">
<!-- ##################################################################### -->
<define name="aria.global">
<a:documentation> RELAX NG Schema for HTML 5: Accessible Rich Internet Applications #</a:documentation>
<!-- ##################################################################### -->
<!-- ##################################################################### -->
<a:documentation>ARIA</a:documentation>
<a:documentation>Global states and properties</a:documentation>
<interleave>
<optional>
<ref name="aria.prop.atomic"/>
</optional>
<optional>
<ref name="aria.state.busy"/>
</optional>
<optional>
<ref name="aria.prop.controls"/>
</optional>
<optional>
<ref name="aria.prop.describedby"/>
</optional>
<optional>
<ref name="aria.state.disabled"/>
</optional>
<optional>
<ref name="aria.state.dropeffect"/>
</optional>
<optional>
<ref name="aria.prop.flowto"/>
</optional>
<optional>
<ref name="aria.state.grabbed"/>
</optional>
<optional>
<ref name="aria.prop.haspopup"/>
</optional>
<optional>
<ref name="aria.state.hidden"/>
</optional>
<optional>
<ref name="aria.state.invalid"/>
</optional>
<optional>
<ref name="aria.prop.label"/>
</optional>
<optional>
<ref name="aria.prop.labelledby"/>
</optional>
<optional>
<ref name="aria.prop.live"/>
</optional>
<optional>
<ref name="aria.prop.owns"/>
</optional>
<optional>
<ref name="aria.prop.relevant"/>
</optional>
<optional>
<ref name="aria.prop.required"/>
</optional>
</interleave>
</define>
<define name="common.attrs.other" combine="interleave">
<optional>
<ref name="aria.global"/>
</optional>
</define>
<!--
common.attrs.aria.implicit.button |=
( aria.prop.controls?
)
-->
<!--
common.attrs.aria.implicit.input |=
( aria.prop.controls?
& aria.state.invalid?
& aria.prop.required?
)
-->
<define name="common.attrs.aria.implicit.region" combine="choice">
<a:documentation>States and Properties for Native Roles</a:documentation>
<optional>
<ref name="aria.state.expanded"/>
</optional>
<!-- & aria.prop.level? -->
</define>
<define name="common.attrs.aria.implicit.group" combine="choice">
<interleave>
<optional>
<ref name="aria.state.expanded"/>
</optional>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
</interleave>
</define>
<define name="common.attrs.aria.implicit.th" combine="choice">
<interleave>
<optional>
<ref name="aria.prop.sort"/>
</optional>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
<optional>
<ref name="aria.prop.readonly"/>
</optional>
<optional>
<ref name="aria.state.selected"/>
</optional>
</interleave>
</define>
<!--
common.attrs.aria.implicit.structure |=
( aria.prop.atomic?
& aria.state.busy?
& aria.prop.channel?
& aria.prop.live?
& aria.prop.relevant?
)
-->
<!--
common.attrs.aria.implicit.link |=
( aria.prop.controls?
& aria.state.disabled?
)
-->
<define name="common.attrs.aria.implicit.listitem" combine="choice">
<interleave>
<optional>
<ref name="aria.prop.posinset"/>
</optional>
<optional>
<ref name="aria.prop.setsize"/>
</optional>
</interleave>
<!-- & aria.prop.atomic? -->
</define>
<!--
common.attrs.aria.implicit.img |=
( aria.prop.atomic?
& aria.state.busy?
& aria.prop.channel?
& aria.prop.controls?
& aria.prop.live?
& aria.prop.relevant?
)
-->
<!--
common.attrs.aria.implicit.select |=
( aria.state.invalid?
& aria.prop.required?
& aria.prop.atomic?
& aria.state.busy?
& aria.prop.channel?
& aria.prop.controls?
& aria.prop.live?
& aria.prop.relevant?
)
-->
<!-- ##################################################################### -->
<define name="aria.state.busy">
<a:documentation>States</a:documentation>
<a:documentation>busy</a:documentation>
<attribute name="aria-busy">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.checked">
<a:documentation>checked</a:documentation>
<attribute name="aria-checked">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<value type="string">mixed</value>
<value type="string">undefined</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.disabled">
<a:documentation>disabled</a:documentation>
<attribute name="aria-disabled">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.dropeffect">
<a:documentation>dropeffect</a:documentation>
<attribute name="aria-dropeffect">
<choice>
<value>none</value>
<!-- default -->
<value>popup</value>
<value>execute</value>
<list>
<value type="string">copy</value>
<optional>
<value type="string">execute</value>
</optional>
</list>
<list>
<value type="string">move</value>
<optional>
<value type="string">execute</value>
</optional>
</list>
<list>
<value type="string">reference</value>
<optional>
<value type="string">execute</value>
</optional>
</list>
<list>
<value type="string">execute</value>
<value type="string">copy</value>
</list>
<list>
<value type="string">execute</value>
<value type="string">move</value>
</list>
<list>
<value type="string">execute</value>
<value type="string">reference</value>
</list>
</choice>
</attribute>
</define>
<define name="aria.state.expanded">
<a:documentation>expanded</a:documentation>
<attribute name="aria-expanded">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<value type="string">undefined</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.grabbed">
<a:documentation>grabbed</a:documentation>
<attribute name="aria-grabbed">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<value type="string">undefined</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.hidden">
<a:documentation>hidden</a:documentation>
<attribute name="aria-hidden">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.invalid">
<a:documentation>invalid</a:documentation>
<attribute name="aria-invalid">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<!-- default -->
<value type="string">grammar</value>
<value type="string">spelling</value>
</choice>
</attribute>
</define>
<define name="aria.state.pressed">
<a:documentation>pressed</a:documentation>
<attribute name="aria-pressed">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<value type="string">mixed</value>
<value type="string">undefined</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.state.selected">
<a:documentation>selected</a:documentation>
<attribute name="aria-selected">
<choice>
<value type="string">true</value>
<value type="string">false</value>
<value type="string">undefined</value>
</choice>
<!-- default -->
</attribute>
</define>
<!-- ##################################################################### -->
<define name="aria.prop.activedescendant">
<a:documentation>Properties</a:documentation>
<a:documentation>activedescendant</a:documentation>
<attribute name="aria-activedescendant">
<ref name="common.data.idref"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.atomic">
<a:documentation>atomic</a:documentation>
<attribute name="aria-atomic">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.autocomplete">
<a:documentation>autocomplete</a:documentation>
<attribute name="aria-autocomplete">
<choice>
<value type="string">inline</value>
<value type="string">list</value>
<value type="string">both</value>
<value type="string">none</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.controls">
<a:documentation>controls</a:documentation>
<attribute name="aria-controls">
<ref name="common.data.idrefs"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.describedby">
<a:documentation>describedby</a:documentation>
<attribute name="aria-describedby">
<ref name="common.data.idrefs"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.flowto">
<a:documentation>flowto</a:documentation>
<attribute name="aria-flowto">
<ref name="common.data.idrefs"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.haspopup">
<a:documentation>haspopup</a:documentation>
<attribute name="aria-haspopup">
<choice>
<value type="string">true</value>
<!-- REVISIT check owns or descendant -->
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.label">
<a:documentation>label</a:documentation>
<attribute name="aria-label">
<data type="string"/>
</attribute>
</define>
<define name="aria.prop.labelledby">
<a:documentation>labelledby</a:documentation>
<attribute name="aria-labelledby">
<ref name="common.data.idrefs"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.level">
<a:documentation>level</a:documentation>
<attribute name="aria-level">
<ref name="common.data.integer.positive"/>
</attribute>
</define>
<define name="aria.prop.live">
<a:documentation>live</a:documentation>
<attribute name="aria-live">
<choice>
<value type="string">off</value>
<!-- default -->
<value type="string">polite</value>
<value type="string">assertive</value>
</choice>
</attribute>
</define>
<define name="aria.prop.multiline">
<a:documentation>multiline</a:documentation>
<attribute name="aria-multiline">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.multiselectable">
<a:documentation>multiselectable</a:documentation>
<attribute name="aria-multiselectable">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.owns">
<a:documentation>owns</a:documentation>
<attribute name="aria-owns">
<ref name="common.data.idrefs"/>
<!-- REVISIT add Schematron check -->
</attribute>
</define>
<define name="aria.prop.posinset">
<a:documentation>posinset</a:documentation>
<attribute name="aria-posinset">
<ref name="common.data.integer.positive"/>
</attribute>
</define>
<define name="aria.prop.readonly">
<a:documentation>readonly</a:documentation>
<attribute name="aria-readonly">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.relevant">
<a:documentation>relevant</a:documentation>
<attribute name="aria-relevant">
<choice>
<value>all</value>
<list>
<value type="string">additions</value>
<optional>
<value type="string">removals</value>
</optional>
<optional>
<value type="string">text</value>
</optional>
</list>
<list>
<value type="string">additions</value>
<optional>
<value type="string">text</value>
</optional>
<optional>
<value type="string">removals</value>
</optional>
</list>
<list>
<value type="string">removals</value>
<optional>
<value type="string">additions</value>
</optional>
<optional>
<value type="string">text</value>
</optional>
</list>
<list>
<value type="string">removals</value>
<optional>
<value type="string">text</value>
</optional>
<optional>
<value type="string">additions</value>
</optional>
</list>
<list>
<value type="string">text</value>
<optional>
<value type="string">additions</value>
</optional>
<optional>
<value type="string">removals</value>
</optional>
</list>
<list>
<value type="string">text</value>
<optional>
<value type="string">removals</value>
</optional>
<optional>
<value type="string">additions</value>
</optional>
</list>
</choice>
</attribute>
</define>
<define name="aria.prop.required">
<a:documentation>required</a:documentation>
<attribute name="aria-required">
<choice>
<value type="string">true</value>
<value type="string">false</value>
</choice>
<!-- default -->
</attribute>
</define>
<define name="aria.prop.setsize">
<a:documentation>setsize</a:documentation>
<attribute name="aria-setsize">
<ref name="common.data.integer.non-negative"/>
</attribute>
</define>
<define name="aria.prop.sort">
<a:documentation>sort</a:documentation>
<attribute name="aria-sort">
<choice>
<value type="string">ascending</value>
<value type="string">descending</value>
<value type="string">none</value>
<!-- default -->
<value type="string">other</value>
</choice>
</attribute>
</define>
<define name="aria.prop.valuemax">
<a:documentation>valuemax</a:documentation>
<attribute name="aria-valuemax">
<ref name="common.data.float"/>
<!-- REVISIT -->
</attribute>
</define>
<define name="aria.prop.valuemin">
<a:documentation>valuemin</a:documentation>
<attribute name="aria-valuemin">
<ref name="common.data.float"/>
<!-- REVISIT -->
</attribute>
</define>
<define name="aria.prop.valuenow">
<a:documentation>valuenow</a:documentation>
<attribute name="aria-valuenow">
<ref name="common.data.float"/>
<!-- REVISIT -->
</attribute>
</define>
<define name="aria.prop.valuetext">
<a:documentation>valuetext</a:documentation>
<attribute name="aria-valuetext">
<data type="string"/>
</attribute>
</define>
<!-- ##################################################################### -->
<define name="aria.alert">
<a:documentation>Roles</a:documentation>
<a:documentation>alert</a:documentation>
<interleave>
<ref name="aria.role.alert"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.alert">
<attribute name="role">
<value type="string">alert</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.alert"/>
</define>
<define name="aria.alertdialog">
<a:documentation>alertdialog</a:documentation>
<interleave>
<ref name="aria.role.alertdialog"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.alertdialog">
<attribute name="role">
<value type="string">alertdialog</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.alertdialog"/>
</define>
<define name="aria.application">
<a:documentation>application</a:documentation>
<interleave>
<ref name="aria.role.application"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.application">
<attribute name="role">
<value type="string">application</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.application"/>
</define>
<define name="common.attrs.aria.landmark.application" combine="choice">
<ref name="aria.application"/>
</define>
<define name="aria.article">
<a:documentation>article</a:documentation>
<interleave>
<ref name="aria.role.article"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.article">
<attribute name="role">
<value type="string">article</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.article"/>
</define>
<define name="common.attrs.aria.landmark.article" combine="choice">
<ref name="aria.article"/>
</define>
<define name="aria.banner">
<a:documentation>banner</a:documentation>
<interleave>
<ref name="aria.role.banner"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.banner">
<attribute name="role">
<value type="string">banner</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.banner"/>
</define>
<define name="common.attrs.aria.landmark.banner" combine="choice">
<ref name="aria.banner"/>
</define>
<define name="aria.button">
<a:documentation>button</a:documentation>
<interleave>
<ref name="aria.role.button"/>
<optional>
<ref name="aria.state.pressed"/>
</optional>
</interleave>
<!-- not inherited -->
</define>
<define name="aria.role.button">
<attribute name="role">
<value type="string">button</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.button"/>
</define>
<define name="aria.checkbox">
<a:documentation>checkbox</a:documentation>
<interleave>
<ref name="aria.role.checkbox"/>
<ref name="aria.state.checked"/>
</interleave>
<!-- required! -->
</define>
<define name="aria.role.checkbox">
<attribute name="role">
<value type="string">checkbox</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.checkbox"/>
</define>
<!-- XXX columnheader -->
<define name="aria.combobox">
<a:documentation>combobox</a:documentation>
<interleave>
<ref name="aria.role.combobox"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<ref name="aria.state.expanded"/>
</interleave>
<!-- required! -->
</define>
<define name="aria.role.combobox">
<attribute name="role">
<value type="string">combobox</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.combobox"/>
</define>
<define name="aria.complementary">
<a:documentation>complementary</a:documentation>
<interleave>
<ref name="aria.role.complementary"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.complementary">
<attribute name="role">
<value type="string">complementary</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.complementary"/>
</define>
<define name="common.attrs.aria.landmark.complementary" combine="choice">
<ref name="aria.complementary"/>
</define>
<define name="aria.contentinfo">
<a:documentation>contentinfo</a:documentation>
<interleave>
<ref name="aria.role.contentinfo"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.contentinfo">
<attribute name="role">
<value type="string">contentinfo</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.contentinfo"/>
</define>
<define name="common.attrs.aria.landmark.contentinfo" combine="choice">
<ref name="aria.contentinfo"/>
</define>
<define name="aria.definition">
<a:documentation>definition</a:documentation>
<interleave>
<ref name="aria.role.definition"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.definition">
<attribute name="role">
<value type="string">definition</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.definition"/>
</define>
<define name="aria.dialog">
<a:documentation>dialog</a:documentation>
<interleave>
<ref name="aria.role.dialog"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.dialog">
<attribute name="role">
<value type="string">dialog</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.dialog"/>
</define>
<define name="aria.directory">
<a:documentation>directory</a:documentation>
<interleave>
<ref name="aria.role.directory"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.directory">
<attribute name="role">
<value type="string">directory</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.directory"/>
</define>
<define name="aria.document">
<a:documentation>document</a:documentation>
<interleave>
<ref name="aria.role.document"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.document">
<attribute name="role">
<value type="string">document</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.document"/>
</define>
<define name="common.attrs.aria.landmark.document" combine="choice">
<ref name="aria.document"/>
</define>
<define name="aria.grid">
<a:documentation>grid</a:documentation>
<interleave>
<ref name="aria.role.grid"/>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.multiselectable"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.readonly"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.grid">
<attribute name="role">
<value type="string">grid</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.grid"/>
</define>
<define name="aria.gridcell">
<a:documentation>gridcell</a:documentation>
<interleave>
<ref name="aria.role.gridcell"/>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<!-- net inherited -->
<ref name="aria.prop.readonly"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.selected"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.gridcell">
<attribute name="role">
<value type="string">gridcell</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.gridcell"/>
</define>
<define name="aria.group">
<a:documentation>group</a:documentation>
<interleave>
<ref name="aria.role.group"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.expanded"/>
</optional>
</interleave>
<!-- not inherited -->
</define>
<define name="aria.role.group">
<attribute name="role">
<value type="string">group</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.group"/>
</define>
<define name="aria.img">
<a:documentation>XXX heading</a:documentation>
<a:documentation>img</a:documentation>
<interleave>
<ref name="aria.role.img"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.img">
<attribute name="role">
<value type="string">img</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.img"/>
</define>
<define name="aria.link">
<a:documentation>link</a:documentation>
<ref name="aria.role.link"/>
</define>
<define name="aria.role.link">
<attribute name="role">
<value type="string">link</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.link"/>
</define>
<define name="aria.list">
<a:documentation>list</a:documentation>
<interleave>
<ref name="aria.role.list"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.list">
<attribute name="role">
<value type="string">list</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.list"/>
</define>
<define name="aria.listbox">
<a:documentation>listbox</a:documentation>
<interleave>
<ref name="aria.role.listbox"/>
<optional>
<ref name="aria.prop.multiselectable"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.listbox">
<attribute name="role">
<value type="string">listbox</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.listbox"/>
</define>
<define name="aria.listitem">
<a:documentation>listitem</a:documentation>
<interleave>
<ref name="aria.role.listitem"/>
<optional>
<ref name="aria.prop.posinset"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.setsize"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.level"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.listitem">
<attribute name="role">
<value type="string">listitem</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.listitem"/>
</define>
<define name="aria.log">
<a:documentation>log</a:documentation>
<interleave>
<ref name="aria.role.log"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.log">
<attribute name="role">
<value type="string">log</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.log"/>
</define>
<define name="aria.main">
<a:documentation>main</a:documentation>
<interleave>
<ref name="aria.role.main"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.main">
<attribute name="role">
<value type="string">main</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.main"/>
</define>
<define name="common.attrs.aria.landmark.main" combine="choice">
<ref name="aria.main"/>
</define>
<define name="aria.marquee">
<a:documentation>marquee</a:documentation>
<interleave>
<ref name="aria.role.marquee"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.marquee">
<attribute name="role">
<value type="string">marquee</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.marquee"/>
</define>
<define name="aria.math">
<a:documentation>math</a:documentation>
<interleave>
<ref name="aria.role.math"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.math">
<attribute name="role">
<value type="string">math</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.math"/>
</define>
<define name="aria.menu">
<a:documentation>menu</a:documentation>
<interleave>
<ref name="aria.role.menu"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.menu">
<attribute name="role">
<value type="string">menu</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.menu"/>
</define>
<define name="aria.menubar">
<a:documentation>menubar</a:documentation>
<interleave>
<ref name="aria.role.menubar"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.menubar">
<attribute name="role">
<value type="string">menubar</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.menubar"/>
</define>
<define name="aria.menuitem">
<a:documentation>menuitem</a:documentation>
<ref name="aria.role.menuitem"/>
</define>
<define name="aria.role.menuitem">
<attribute name="role">
<value type="string">menuitem</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.menuitem"/>
</define>
<define name="aria.menuitemcheckbox">
<a:documentation>menuitemcheckbox</a:documentation>
<interleave>
<ref name="aria.role.menuitemcheckbox"/>
<ref name="aria.state.checked"/>
</interleave>
<!-- required -->
</define>
<define name="aria.role.menuitemcheckbox">
<attribute name="role">
<value type="string">menuitemcheckbox</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.menuitemcheckbox"/>
</define>
<define name="aria.menuitemradio">
<a:documentation>menuitemradio</a:documentation>
<interleave>
<ref name="aria.role.menuitemradio"/>
<ref name="aria.state.checked"/>
<optional>
<!-- required -->
<ref name="aria.state.selected"/>
</optional>
</interleave>
</define>
<define name="aria.role.menuitemradio">
<attribute name="role">
<value type="string">menuitemradio</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.menuitemradio"/>
</define>
<define name="aria.navigation">
<a:documentation>navigation</a:documentation>
<interleave>
<ref name="aria.role.navigation"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.navigation">
<attribute name="role">
<value type="string">navigation</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.navigation"/>
</define>
<define name="common.attrs.aria.landmark.navigation" combine="choice">
<ref name="aria.navigation"/>
</define>
<define name="aria.note">
<a:documentation>note</a:documentation>
<interleave>
<ref name="aria.role.note"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.note">
<attribute name="role">
<value type="string">note</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.note"/>
</define>
<define name="common.attrs.aria.landmark.note" combine="choice">
<ref name="aria.note"/>
</define>
<define name="aria.option">
<a:documentation>option</a:documentation>
<interleave>
<ref name="aria.role.option"/>
<optional>
<ref name="aria.state.checked"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.selected"/>
</optional>
</interleave>
<!-- not inherited -->
</define>
<define name="aria.role.option">
<attribute name="role">
<value type="string">option</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.option"/>
</define>
<define name="aria.presentation">
<a:documentation>presentation</a:documentation>
<interleave>
<ref name="aria.role.presentation"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.presentation">
<attribute name="role">
<value type="string">presentation</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.presentation"/>
</define>
<define name="aria.progressbar">
<a:documentation>progressbar</a:documentation>
<interleave>
<ref name="aria.role.progressbar"/>
<optional>
<ref name="aria.prop.valuemax"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.valuemin"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.valuenow"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.valuetext"/>
</optional>
</interleave>
<!-- not inherited -->
</define>
<define name="aria.role.progressbar">
<attribute name="role">
<value type="string">progressbar</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.progressbar"/>
</define>
<define name="aria.radio">
<a:documentation>radio</a:documentation>
<interleave>
<ref name="aria.role.radio"/>
<ref name="aria.state.checked"/>
<optional>
<!-- required! -->
<ref name="aria.state.selected"/>
</optional>
</interleave>
</define>
<define name="aria.role.radio">
<attribute name="role">
<value type="string">radio</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.radio"/>
</define>
<define name="aria.radiogroup">
<a:documentation>radiogroup</a:documentation>
<interleave>
<ref name="aria.role.radiogroup"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.radiogroup">
<attribute name="role">
<value type="string">radiogroup</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.radiogroup"/>
</define>
<define name="aria.region">
<a:documentation>region</a:documentation>
<interleave>
<ref name="aria.role.region"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.region">
<attribute name="role">
<value type="string">region</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.region"/>
</define>
<define name="aria.row">
<a:documentation>row</a:documentation>
<interleave>
<ref name="aria.role.row"/>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.state.selected"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.row">
<attribute name="role">
<value type="string">row</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.row"/>
</define>
<!-- XXX rowheader -->
<define name="aria.search">
<a:documentation>search</a:documentation>
<interleave>
<ref name="aria.role.search"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.search">
<attribute name="role">
<value type="string">search</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.search"/>
</define>
<define name="common.attrs.aria.landmark.search" combine="choice">
<ref name="aria.search"/>
</define>
<define name="aria.separator">
<a:documentation>separator</a:documentation>
<interleave>
<ref name="aria.role.separator"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.separator">
<attribute name="role">
<value type="string">separator</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.separator"/>
</define>
<define name="aria.slider">
<a:documentation>slider</a:documentation>
<interleave>
<ref name="aria.role.slider"/>
<ref name="aria.prop.valuemax"/>
<ref name="aria.prop.valuemin"/>
<ref name="aria.prop.valuenow"/>
<ref name="aria.prop.valuetext"/>
</interleave>
</define>
<define name="aria.role.slider">
<attribute name="role">
<value type="string">slider</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.slider"/>
</define>
<define name="aria.spinbutton">
<a:documentation>spinbutton</a:documentation>
<interleave>
<ref name="aria.role.spinbutton"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<ref name="aria.prop.valuemax"/>
<ref name="aria.prop.valuemin"/>
<ref name="aria.prop.valuenow"/>
<ref name="aria.prop.valuetext"/>
</interleave>
</define>
<define name="aria.role.spinbutton">
<attribute name="role">
<value type="string">spinbutton</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.spinbutton"/>
</define>
<define name="aria.status">
<a:documentation>status</a:documentation>
<interleave>
<ref name="aria.role.status"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.status">
<attribute name="role">
<value type="string">status</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.status"/>
</define>
<define name="aria.tab">
<a:documentation>tab</a:documentation>
<interleave>
<ref name="aria.role.tab"/>
<optional>
<ref name="aria.state.selected"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.tab">
<attribute name="role">
<value type="string">tab</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.tab"/>
</define>
<define name="aria.tablist">
<a:documentation>tablist</a:documentation>
<interleave>
<ref name="aria.role.tablist"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.tablist">
<attribute name="role">
<value type="string">tablist</value>
</attribute>
</define>
<define name="aria.tabpanel">
<a:documentation>tabpanel</a:documentation>
<interleave>
<ref name="aria.role.tabpanel"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.tabpanel">
<attribute name="role">
<value type="string">tabpanel</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.tabpanel"/>
</define>
<define name="aria.textbox">
<a:documentation>textbox</a:documentation>
<interleave>
<ref name="aria.role.textbox"/>
<optional>
<ref name="aria.prop.autocomplete"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.multiline"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.readonly"/>
</optional>
</interleave>
<!-- not inherited -->
</define>
<define name="aria.role.textbox">
<attribute name="role">
<value type="string">textbox</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.textbox"/>
</define>
<define name="aria.timer">
<a:documentation>timer</a:documentation>
<interleave>
<ref name="aria.role.timer"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.timer">
<attribute name="role">
<value type="string">timer</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.timer"/>
</define>
<define name="aria.toolbar">
<a:documentation>toolbar</a:documentation>
<interleave>
<ref name="aria.role.toolbar"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.toolbar">
<attribute name="role">
<value type="string">toolbar</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.toolbar"/>
</define>
<define name="aria.tooltip">
<a:documentation>tooltip</a:documentation>
<interleave>
<ref name="aria.role.tooltip"/>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.tooltip">
<attribute name="role">
<value type="string">tooltip</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.tooltip"/>
</define>
<define name="aria.tree">
<a:documentation>tree</a:documentation>
<interleave>
<ref name="aria.role.tree"/>
<optional>
<ref name="aria.prop.multiselectable"/>
</optional>
<optional>
<!-- not inherited -->
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
</interleave>
</define>
<define name="aria.role.tree">
<attribute name="role">
<value type="string">tree</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.tree"/>
</define>
<define name="aria.treegrid">
<a:documentation>treegrid</a:documentation>
<interleave>
<ref name="aria.role.treegrid"/>
<optional>
<ref name="aria.prop.activedescendant"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<ref name="aria.prop.multiselectable"/>
</optional>
<optional>
<ref name="aria.prop.readonly"/>
</optional>
</interleave>
</define>
<define name="aria.role.treegrid">
<attribute name="role">
<value type="string">treegrid</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.treegrid"/>
</define>
<define name="aria.treeitem">
<a:documentation>treeitem</a:documentation>
<interleave>
<ref name="aria.role.treeitem"/>
<optional>
<ref name="aria.state.checked"/>
</optional>
<optional>
<ref name="aria.state.expanded"/>
</optional>
<optional>
<ref name="aria.prop.level"/>
</optional>
<optional>
<ref name="aria.prop.posinset"/>
</optional>
<optional>
<ref name="aria.state.selected"/>
</optional>
<optional>
<ref name="aria.prop.setsize"/>
</optional>
</interleave>
</define>
<define name="aria.role.treeitem">
<attribute name="role">
<value type="string">treeitem</value>
</attribute>
</define>
<define name="common.attrs.aria" combine="choice">
<ref name="aria.treeitem"/>
</define>
</grammar>