| # ##################################################################### |
| ## RELAX NG Schema for HTML 5: Accessible Rich Internet Applications # |
| # ##################################################################### |
| # |
| # history: http://hsivonen.iki.fi/aria-html5-bis/ |
| |
| # ##################################################################### |
| ## ARIA |
| |
| ## Global states and properties |
| |
| aria.global = |
| ( aria.prop.atomic? |
| & aria.state.busy? |
| & aria.prop.controls? |
| & aria.prop.describedby? |
| & aria.state.disabled? |
| & aria.state.dropeffect? |
| & aria.prop.flowto? |
| & aria.state.grabbed? |
| & aria.prop.haspopup? |
| & aria.state.hidden? |
| & aria.state.invalid? |
| & aria.prop.label? |
| & aria.prop.labelledby? |
| & aria.prop.live? |
| & aria.prop.owns? |
| & aria.prop.relevant? |
| ) |
| |
| common.attrs.other &= aria.global? |
| |
| ## States and Properties for Native Roles |
| |
| common.attrs.aria.implicit.button |= |
| ( aria.state.expanded? |
| & aria.state.pressed? |
| ) |
| |
| common.attrs.aria.implicit.checkbox |= |
| ( aria.state.checked? ) |
| |
| common.attrs.aria.implicit.combobox |= |
| ( aria.state.expanded? |
| & aria.prop.autocomplete? |
| & aria.prop.required? |
| & aria.prop.activedescendant? |
| ) |
| |
| common.attrs.aria.implicit.dialog |= |
| ( aria.state.expanded? ) |
| |
| common.attrs.aria.implicit.document |= |
| ( aria.state.expanded? ) |
| |
| common.attrs.aria.implicit.group |= |
| ( aria.state.expanded? |
| & aria.prop.activedescendant? |
| ) |
| |
| common.attrs.aria.implicit.heading |= |
| ( aria.state.expanded? |
| & aria.prop.level? |
| ) |
| |
| common.attrs.aria.implicit.img |= |
| ( aria.state.expanded? ) |
| |
| common.attrs.aria.implicit.link |= |
| ( aria.state.expanded? ) |
| |
| common.attrs.aria.implicit.listbox |= |
| ( aria.prop.multiselectable? |
| & aria.prop.required? |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| |
| common.attrs.aria.implicit.listitem |= |
| ( aria.prop.level? |
| & aria.prop.posinset? |
| & aria.prop.setsize? |
| & aria.state.expanded? |
| ) |
| |
| common.attrs.aria.implicit.option |= |
| ( aria.prop.posinset? |
| & aria.prop.setsize? |
| & aria.state.checked? |
| & aria.state.selected? |
| ) |
| |
| common.attrs.aria.implicit.progressbar |= |
| ( aria.prop.valuemax? |
| & aria.prop.valuemin? |
| & aria.prop.valuenow? |
| & aria.prop.valuetext? |
| ) |
| |
| common.attrs.aria.implicit.radio |= |
| ( aria.prop.posinset? |
| & aria.prop.setsize? |
| & aria.state.checked? |
| & aria.state.selected? |
| ) |
| |
| common.attrs.aria.implicit.slider |= |
| ( aria.prop.valuemax? |
| & aria.prop.valuemin? |
| & aria.prop.valuenow? |
| & aria.prop.valuetext? |
| & aria.prop.orientation? |
| ) |
| |
| common.attrs.aria.implicit.spinbutton |= |
| ( aria.prop.valuemax? |
| & aria.prop.valuemin? |
| & aria.prop.valuenow? |
| & aria.prop.valuetext? |
| & aria.prop.required? |
| ) |
| |
| common.attrs.aria.implicit.textbox |= |
| ( aria.prop.activedescendant? |
| & aria.prop.autocomplete? |
| & aria.prop.multiline? |
| & aria.prop.readonly? |
| & aria.prop.required? |
| ) |
| |
| common.attrs.aria.implicit.toolbar |= |
| ( aria.state.expanded? |
| & aria.prop.activedescendant? |
| ) |
| |
| common.attrs.aria.implicit.column-or-row-header |= |
| ( aria.prop.sort? |
| & aria.prop.readonly? |
| & aria.prop.required? |
| & aria.state.selected? |
| & aria.state.expanded? |
| ) |
| |
| #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? |
| # ) |
| |
| # section |
| # | |
| # |_ region |
| # | |
| # |_ article |
| # | |
| # |_ landmark |
| # | |_ banner |
| # | |_ complementary |
| # | |_ contentinfo |
| # | |_ main |
| # | |_ navigation |
| # | |
| # |_ list |
| # | |
| # |_ status |
| |
| common.attrs.aria.implicit.section |= |
| ( aria.state.expanded? ) |
| |
| common.attrs.aria.implicit.region |= common.attrs.aria.implicit.section |
| |
| common.attrs.aria.implicit.article |= common.attrs.aria.implicit.region |
| common.attrs.aria.implicit.landmark |= common.attrs.aria.implicit.region |
| common.attrs.aria.implicit.list |= common.attrs.aria.implicit.region |
| common.attrs.aria.implicit.status |= common.attrs.aria.implicit.region |
| |
| common.attrs.aria.implicit.banner |= common.attrs.aria.implicit.landmark |
| common.attrs.aria.implicit.complementary |= common.attrs.aria.implicit.landmark |
| common.attrs.aria.implicit.contentinfo |= common.attrs.aria.implicit.landmark |
| common.attrs.aria.implicit.main |= common.attrs.aria.implicit.landmark |
| common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark |
| |
| # ##################################################################### |
| ## States |
| |
| ## busy |
| aria.state.busy = |
| attribute aria-busy |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## checked |
| aria.state.checked = |
| attribute aria-checked |
| { string "true" |
| | string "false" |
| | string "mixed" |
| | string "undefined" #default |
| } |
| |
| ## disabled |
| aria.state.disabled = |
| attribute aria-disabled |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## dropeffect |
| aria.state.dropeffect = |
| attribute aria-dropeffect |
| { token "none" #default |
| | token "popup" |
| | token "execute" |
| | list |
| { ( string "copy" ) |
| , ( string "execute" )? |
| } |
| | list |
| { ( string "move" ) |
| , ( string "execute" )? |
| } |
| | list |
| { ( string "link" ) |
| , ( string "execute" )? |
| } |
| | list |
| { ( string "execute" ) |
| , ( string "copy" ) |
| } |
| | list |
| { ( string "execute" ) |
| , ( string "move" ) |
| } |
| | list |
| { ( string "execute" ) |
| , ( string "link" ) |
| } |
| } |
| |
| ## expanded |
| aria.state.expanded = |
| attribute aria-expanded |
| { string "true" |
| | string "false" |
| | string "undefined" #default |
| } |
| |
| ## grabbed |
| aria.state.grabbed = |
| attribute aria-grabbed |
| { string "true" |
| | string "false" |
| | string "undefined" #default |
| } |
| |
| ## hidden |
| aria.state.hidden = |
| attribute aria-hidden |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## invalid |
| aria.state.invalid = |
| attribute aria-invalid |
| { string "true" |
| | string "false" #default |
| | string "grammar" |
| | string "spelling" |
| } |
| |
| ## pressed |
| aria.state.pressed = |
| attribute aria-pressed |
| { string "true" |
| | string "false" |
| | string "mixed" |
| | string "undefined" #default |
| } |
| |
| ## selected |
| aria.state.selected = |
| attribute aria-selected |
| { string "true" |
| | string "false" |
| | string "undefined" #default |
| } |
| |
| |
| |
| # ##################################################################### |
| ## Properties |
| |
| ## activedescendant |
| aria.prop.activedescendant = |
| attribute aria-activedescendant { |
| common.data.idref #REVISIT add Schematron check |
| } |
| |
| ## atomic |
| aria.prop.atomic = |
| attribute aria-atomic |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## autocomplete |
| aria.prop.autocomplete = |
| attribute aria-autocomplete |
| { string "inline" |
| | string "list" |
| | string "both" |
| | string "none" #default |
| } |
| |
| ## controls |
| aria.prop.controls = |
| attribute aria-controls { |
| common.data.idrefs #REVISIT add Schematron check |
| } |
| |
| ## describedby |
| aria.prop.describedby = |
| attribute aria-describedby { |
| common.data.idrefs #REVISIT add Schematron check |
| } |
| |
| ## flowto |
| aria.prop.flowto = |
| attribute aria-flowto { |
| common.data.idrefs #REVISIT add Schematron check |
| } |
| |
| ## haspopup |
| aria.prop.haspopup = |
| attribute aria-haspopup |
| { string "true" #REVISIT check owns or descendant |
| | string "false" #default |
| } |
| |
| ## label |
| aria.prop.label = |
| attribute aria-label { |
| string |
| } |
| |
| ## labelledby |
| aria.prop.labelledby = |
| attribute aria-labelledby { |
| common.data.idrefs #REVISIT add Schematron check |
| } |
| |
| ## level |
| aria.prop.level = |
| attribute aria-level { |
| common.data.integer.positive |
| } |
| |
| ## live |
| aria.prop.live = |
| attribute aria-live |
| { string "off" #default |
| | string "polite" |
| | string "assertive" |
| } |
| |
| ## multiline |
| aria.prop.multiline = |
| attribute aria-multiline |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## multiselectable |
| aria.prop.multiselectable = |
| attribute aria-multiselectable |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## orientation |
| aria.prop.orientation = |
| attribute aria-orientation |
| { string "vertical" |
| | string "horizontal" #default |
| } |
| |
| ## owns |
| aria.prop.owns = |
| attribute aria-owns { |
| common.data.idrefs #REVISIT add Schematron check |
| } |
| |
| ## posinset |
| aria.prop.posinset = |
| attribute aria-posinset { |
| common.data.integer.positive |
| } |
| |
| ## readonly |
| aria.prop.readonly = |
| attribute aria-readonly |
| { string "true" |
| | string "false" #default |
| } |
| common.attrs.aria.prop.readonly |= aria.prop.readonly |
| |
| ## relevant |
| aria.prop.relevant = |
| attribute aria-relevant |
| { token "all" |
| | list |
| { ( string "additions" ) |
| , ( string "removals" )? |
| , ( string "text" )? |
| } |
| | list |
| { ( string "additions" ) |
| , ( string "text" )? |
| , ( string "removals" )? |
| } |
| | list |
| { ( string "removals" ) |
| , ( string "additions" )? |
| , ( string "text" )? |
| } |
| | list |
| { ( string "removals" ) |
| , ( string "text" )? |
| , ( string "additions" )? |
| } |
| | list |
| { ( string "text" ) |
| , ( string "additions" )? |
| , ( string "removals" )? |
| } |
| | list |
| { ( string "text" ) |
| , ( string "removals" )? |
| , ( string "additions" )? |
| } |
| } |
| |
| ## required |
| aria.prop.required = |
| attribute aria-required |
| { string "true" |
| | string "false" #default |
| } |
| |
| ## setsize |
| aria.prop.setsize = |
| attribute aria-setsize { |
| common.data.integer.non-negative |
| } |
| |
| ## sort |
| aria.prop.sort = |
| attribute aria-sort |
| { string "ascending" |
| | string "descending" |
| | string "none" #default |
| | string "other" |
| } |
| |
| ## valuemax |
| aria.prop.valuemax = |
| attribute aria-valuemax { |
| common.data.float #REVISIT |
| } |
| |
| ## valuemin |
| aria.prop.valuemin = |
| attribute aria-valuemin { |
| common.data.float #REVISIT |
| } |
| |
| ## valuenow |
| aria.prop.valuenow = |
| attribute aria-valuenow { |
| common.data.float #REVISIT |
| } |
| |
| ## valuetext |
| aria.prop.valuetext = |
| attribute aria-valuetext { |
| string |
| } |
| |
| # ##################################################################### |
| ## Roles |
| |
| ## alert |
| aria.alert = |
| ( aria.role.alert |
| & aria.state.expanded? |
| ) |
| aria.role.alert = |
| attribute role { string "alert" } |
| |
| common.attrs.aria |= aria.alert |
| common.attrs.aria.role.alert |= aria.alert |
| |
| ## alertdialog |
| aria.alertdialog = |
| ( aria.role.alertdialog |
| & aria.state.expanded? |
| ) |
| aria.role.alertdialog = |
| attribute role { string "alertdialog" } |
| |
| common.attrs.aria |= aria.alertdialog |
| common.attrs.aria.role.alertdialog |= aria.alertdialog |
| |
| ## application |
| aria.application = |
| ( aria.role.application |
| & aria.state.expanded? |
| ) |
| aria.role.application = |
| attribute role { string "application" } |
| |
| common.attrs.aria |= aria.application |
| common.attrs.aria.landmark.application |= aria.application |
| |
| ## article |
| aria.article = |
| ( aria.role.article |
| & aria.state.expanded? |
| ) |
| aria.role.article = |
| attribute role { string "article" } |
| |
| common.attrs.aria |= aria.article |
| common.attrs.aria.landmark.article |= aria.article |
| |
| ## banner |
| aria.banner = |
| ( aria.role.banner |
| & aria.state.expanded? |
| ) |
| aria.role.banner = |
| attribute role { string "banner" } |
| |
| common.attrs.aria |= aria.banner |
| common.attrs.aria.landmark.banner |= aria.banner |
| |
| ## button |
| aria.button = |
| ( aria.role.button |
| & aria.state.expanded? |
| & aria.state.pressed? # not inherited |
| ) |
| aria.role.button = |
| attribute role { string "button" } |
| |
| common.attrs.aria |= aria.button |
| common.attrs.aria.role.button |= aria.button |
| |
| ## checkbox |
| aria.checkbox = |
| ( aria.role.checkbox |
| & aria.state.checked #required! |
| ) |
| aria.role.checkbox = |
| attribute role { string "checkbox" } |
| |
| common.attrs.aria |= aria.checkbox |
| common.attrs.aria.role.checkbox |= aria.checkbox |
| |
| # columnheader |
| aria.columnheader = |
| ( aria.role.columnheader |
| & aria.prop.sort? # not inherited |
| & aria.prop.readonly? # not inherited |
| & aria.state.selected? # not inherited |
| & aria.state.expanded? |
| & aria.prop.required? |
| ) |
| aria.role.columnheader = |
| attribute role { string "columnheader" } |
| |
| common.attrs.aria |= aria.columnheader |
| |
| ## combobox |
| aria.combobox = |
| ( aria.role.combobox |
| & aria.prop.activedescendant? |
| & aria.state.expanded #required! |
| & aria.prop.autocomplete? |
| & aria.prop.required? |
| ) |
| aria.role.combobox = |
| attribute role { string "combobox" } |
| |
| common.attrs.aria |= aria.combobox |
| common.attrs.aria.role.combobox |= aria.combobox |
| |
| ## complementary |
| aria.complementary = |
| ( aria.role.complementary |
| & aria.state.expanded? |
| ) |
| aria.role.complementary = |
| attribute role { string "complementary" } |
| |
| common.attrs.aria |= aria.complementary |
| common.attrs.aria.landmark.complementary |= aria.complementary |
| |
| ## contentinfo |
| aria.contentinfo = |
| ( aria.role.contentinfo |
| & aria.state.expanded? |
| ) |
| aria.role.contentinfo = |
| attribute role { string "contentinfo" } |
| |
| common.attrs.aria |= aria.contentinfo |
| common.attrs.aria.landmark.contentinfo |= aria.contentinfo |
| |
| ## definition |
| aria.definition = |
| ( aria.role.definition |
| & aria.state.expanded? |
| ) |
| aria.role.definition = |
| attribute role { string "definition" } |
| |
| common.attrs.aria |= aria.definition |
| |
| ## dialog |
| aria.dialog = |
| ( aria.role.dialog |
| & aria.state.expanded? |
| ) |
| aria.role.dialog = |
| attribute role { string "dialog" } |
| |
| common.attrs.aria |= aria.dialog |
| common.attrs.aria.role.dialog |= aria.dialog |
| |
| ## directory |
| aria.directory = |
| ( aria.role.directory |
| & aria.state.expanded? |
| ) |
| aria.role.directory = |
| attribute role { string "directory" } |
| |
| common.attrs.aria |= aria.directory |
| common.attrs.aria.role.directory |= aria.directory |
| |
| ## document |
| aria.document = |
| ( aria.role.document |
| & aria.state.expanded? |
| ) |
| aria.role.document = |
| attribute role { string "document" } |
| |
| common.attrs.aria |= aria.document |
| common.attrs.aria.landmark.document |= aria.document |
| |
| ## form |
| aria.form = |
| ( aria.role.form |
| & aria.state.expanded? |
| ) |
| aria.role.form = |
| attribute role { string "form" } |
| |
| common.attrs.aria |= aria.form |
| common.attrs.aria.landmark.form |= aria.form |
| |
| ## grid |
| aria.grid = |
| ( aria.role.grid |
| & aria.prop.level? # not inherited |
| & aria.prop.multiselectable? # not inherited |
| & aria.prop.readonly? # not inherited |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.grid = |
| attribute role { string "grid" } |
| |
| common.attrs.aria |= aria.grid |
| |
| ## gridcell |
| aria.gridcell = |
| ( aria.role.gridcell |
| & aria.prop.level? # net inherited |
| & aria.prop.readonly? # not inherited |
| & aria.state.selected? # not inherited |
| & aria.state.expanded? |
| & aria.prop.required? |
| ) |
| aria.role.gridcell = |
| attribute role { string "gridcell" } |
| |
| common.attrs.aria |= aria.gridcell |
| |
| ## group |
| aria.group = |
| ( aria.role.group |
| & aria.prop.activedescendant? # not inherited |
| & aria.state.expanded? # not inherited |
| ) |
| aria.role.group = |
| attribute role { string "group" } |
| |
| common.attrs.aria |= aria.group |
| common.attrs.aria.role.group |= aria.group |
| |
| ## heading |
| aria.heading = |
| ( aria.role.heading |
| & aria.prop.level ? # not inherited |
| & aria.state.expanded? |
| ) |
| aria.role.heading = |
| attribute role { string "heading" } |
| |
| common.attrs.aria |= aria.heading |
| common.attrs.aria.role.heading |= aria.heading |
| |
| ## img |
| aria.img = |
| ( aria.role.img |
| & aria.state.expanded? |
| ) |
| aria.role.img = |
| attribute role { string "img" } |
| |
| common.attrs.aria |= aria.img |
| common.attrs.aria.role.img |= aria.img |
| |
| ## link |
| aria.link = |
| ( aria.role.link |
| & aria.state.expanded? |
| ) |
| aria.role.link = |
| attribute role { string "link" } |
| |
| common.attrs.aria |= aria.link |
| common.attrs.aria.role.link |= aria.link |
| |
| ## list |
| aria.list = |
| ( aria.role.list |
| & aria.state.expanded? |
| ) |
| aria.role.list = |
| attribute role { string "list" } |
| |
| common.attrs.aria |= aria.list |
| common.attrs.aria.role.list |= aria.list |
| |
| ## listbox |
| aria.listbox = |
| ( aria.role.listbox |
| & aria.prop.multiselectable? # not inherited |
| & aria.prop.required? |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.listbox = |
| attribute role { string "listbox" } |
| |
| common.attrs.aria |= aria.listbox |
| common.attrs.aria.role.listbox |= aria.listbox |
| |
| ## listitem |
| aria.listitem = |
| ( aria.role.listitem |
| & aria.prop.posinset? # not inherited |
| & aria.prop.setsize? # not inherited |
| & aria.prop.level? # not inherited |
| & aria.state.expanded? |
| ) |
| aria.role.listitem = |
| attribute role { string "listitem" } |
| |
| common.attrs.aria |= aria.listitem |
| common.attrs.aria.role.listitem |= aria.listitem |
| |
| ## log |
| aria.log = |
| ( aria.role.log |
| & aria.state.expanded? |
| ) |
| aria.role.log = |
| attribute role { string "log" } |
| |
| common.attrs.aria |= aria.log |
| common.attrs.aria.role.log |= aria.log |
| |
| ## main |
| aria.main = |
| ( aria.role.main |
| & aria.state.expanded? |
| ) |
| aria.role.main = |
| attribute role { string "main" } |
| |
| common.attrs.aria |= aria.main |
| common.attrs.aria.landmark.main |= aria.main |
| |
| ## marquee |
| aria.marquee = |
| ( aria.role.marquee |
| & aria.state.expanded? |
| ) |
| aria.role.marquee = |
| attribute role { string "marquee" } |
| |
| common.attrs.aria |= aria.marquee |
| common.attrs.aria.role.marquee |= aria.marquee |
| |
| ## math |
| aria.math = |
| ( aria.role.math |
| & aria.state.expanded? |
| ) |
| aria.role.math = |
| attribute role { string "math" } |
| |
| common.attrs.aria |= aria.math |
| |
| ## menu |
| aria.menu = |
| ( aria.role.menu |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.menu = |
| attribute role { string "menu" } |
| |
| common.attrs.aria |= aria.menu |
| common.attrs.aria.role.menu |= aria.menu |
| |
| ## menubar |
| aria.menubar = |
| ( aria.role.menubar |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.menubar = |
| attribute role { string "menubar" } |
| |
| common.attrs.aria |= aria.menubar |
| common.attrs.aria.role.menubar |= aria.menubar |
| |
| |
| ## menuitem |
| aria.menuitem = |
| ( aria.role.menuitem ) |
| aria.role.menuitem = |
| attribute role { string "menuitem" } |
| |
| common.attrs.aria |= aria.menuitem |
| common.attrs.aria.role.menuitem |= aria.menuitem |
| |
| ## menuitemcheckbox |
| aria.menuitemcheckbox = |
| ( aria.role.menuitemcheckbox |
| & aria.state.checked #required |
| ) |
| aria.role.menuitemcheckbox = |
| attribute role { string "menuitemcheckbox" } |
| |
| common.attrs.aria |= aria.menuitemcheckbox |
| common.attrs.aria.role.menuitemcheckbox |= aria.menuitemcheckbox |
| |
| ## menuitemradio |
| aria.menuitemradio = |
| ( aria.role.menuitemradio |
| & aria.state.checked #required |
| & aria.state.selected? |
| & aria.prop.posinset? |
| & aria.prop.setsize? |
| ) |
| aria.role.menuitemradio = |
| attribute role { string "menuitemradio" } |
| |
| common.attrs.aria |= aria.menuitemradio |
| common.attrs.aria.role.menuitemradio |= aria.menuitemradio |
| |
| ## navigation |
| aria.navigation = |
| ( aria.role.navigation |
| & aria.state.expanded? |
| ) |
| aria.role.navigation = |
| attribute role { string "navigation" } |
| |
| common.attrs.aria |= aria.navigation |
| common.attrs.aria.landmark.navigation |= aria.navigation |
| |
| ## note |
| aria.note = |
| ( aria.role.note |
| & aria.state.expanded? |
| ) |
| aria.role.note = |
| attribute role { string "note" } |
| |
| common.attrs.aria |= aria.note |
| common.attrs.aria.landmark.note |= aria.note |
| |
| ## option |
| aria.option = |
| ( aria.role.option |
| & aria.state.checked? # not inherited |
| & aria.state.selected? # not inherited |
| & aria.prop.posinset? |
| & aria.prop.setsize? |
| ) |
| aria.role.option = |
| attribute role { string "option" } |
| |
| common.attrs.aria |= aria.option |
| common.attrs.aria.role.option |= aria.option |
| |
| |
| ## presentation |
| aria.presentation = |
| ( aria.role.presentation |
| & aria.state.expanded? |
| ) |
| aria.role.presentation = |
| attribute role { string "presentation" } |
| |
| common.attrs.aria |= aria.presentation |
| common.attrs.aria.role.presentation |= aria.presentation |
| |
| ## progressbar |
| aria.progressbar = |
| ( aria.role.progressbar |
| & aria.prop.valuemax? # not inherited |
| & aria.prop.valuemin? # not inherited |
| & aria.prop.valuenow? # not inherited |
| & aria.prop.valuetext? # not inherited |
| ) |
| aria.role.progressbar = |
| attribute role { string "progressbar" } |
| |
| common.attrs.aria |= aria.progressbar |
| common.attrs.aria.role.progressbar |= aria.progressbar |
| |
| ## radio |
| aria.radio = |
| ( aria.role.radio |
| & aria.state.checked #required! |
| & aria.state.selected? |
| & aria.prop.posinset? |
| & aria.prop.setsize? |
| ) |
| aria.role.radio = |
| attribute role { string "radio" } |
| |
| common.attrs.aria |= aria.radio |
| common.attrs.aria.role.radio |= aria.radio |
| |
| ## radiogroup |
| aria.radiogroup = |
| ( aria.role.radiogroup |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| & aria.prop.required? |
| ) |
| aria.role.radiogroup = |
| attribute role { string "radiogroup" } |
| |
| common.attrs.aria |= aria.radiogroup |
| |
| ## region |
| aria.region = |
| ( aria.role.region |
| & aria.state.expanded? |
| ) |
| aria.role.region = |
| attribute role { string "region" } |
| |
| common.attrs.aria |= aria.region |
| common.attrs.aria.role.region |= aria.region |
| |
| ## row |
| aria.row = |
| ( aria.role.row |
| & aria.prop.level? # not inherited |
| & aria.state.selected? # not inherited |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.row = |
| attribute role { string "row" } |
| |
| common.attrs.aria |= aria.row |
| |
| ## rowgroup |
| aria.rowgroup = |
| ( aria.role.rowgroup |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.rowgroup = |
| attribute role { string "rowgroup" } |
| |
| common.attrs.aria |= aria.rowgroup |
| |
| # rowheader |
| aria.rowheader = |
| ( aria.role.rowheader |
| & aria.prop.sort? # not inherited |
| & aria.prop.readonly? # not inherited |
| & aria.state.selected? # not inherited |
| & aria.state.expanded? |
| & aria.prop.required? |
| ) |
| aria.role.rowheader = |
| attribute role { string "rowheader" } |
| |
| common.attrs.aria |= aria.rowheader |
| |
| ## scrollbar |
| aria.scrollbar = |
| ( aria.role.scrollbar |
| & aria.prop.orientation |
| & aria.prop.valuemax |
| & aria.prop.valuemin |
| & aria.prop.valuenow |
| & aria.prop.valuetext? |
| ) |
| aria.role.scrollbar = |
| attribute role { string "scrollbar" } |
| |
| common.attrs.aria |= aria.scrollbar |
| |
| ## search |
| aria.search = |
| ( aria.role.search |
| & aria.state.expanded? |
| ) |
| aria.role.search = |
| attribute role { string "search" } |
| |
| common.attrs.aria |= aria.search |
| common.attrs.aria.landmark.search |= aria.search |
| |
| ## separator |
| aria.separator = |
| ( aria.role.separator |
| & aria.state.expanded? |
| & aria.prop.orientation? |
| ) |
| aria.role.separator = |
| attribute role { string "separator" } |
| |
| common.attrs.aria |= aria.separator |
| common.attrs.aria.role.separator |= aria.separator |
| |
| ## slider |
| aria.slider = |
| ( aria.role.slider |
| & aria.prop.valuemax |
| & aria.prop.valuemin |
| & aria.prop.valuenow |
| & aria.prop.valuetext? |
| & aria.prop.orientation? |
| ) |
| aria.role.slider = |
| attribute role { string "slider" } |
| |
| common.attrs.aria |= aria.slider |
| common.attrs.aria.role.slider |= aria.slider |
| |
| ## spinbutton |
| aria.spinbutton = |
| ( aria.role.spinbutton |
| & aria.prop.valuemax |
| & aria.prop.valuemin |
| & aria.prop.valuenow |
| & aria.prop.valuetext? |
| & aria.prop.required? |
| ) |
| aria.role.spinbutton = |
| attribute role { string "spinbutton" } |
| |
| common.attrs.aria |= aria.spinbutton |
| common.attrs.aria.role.spinbutton |= aria.spinbutton |
| |
| ## status |
| aria.status = |
| ( aria.role.status |
| & aria.state.expanded? |
| ) |
| aria.role.status = |
| attribute role { string "status" } |
| |
| common.attrs.aria |= aria.status |
| common.attrs.aria.role.status |= aria.status |
| |
| ## tab |
| aria.tab = |
| ( aria.role.tab |
| & aria.state.selected? |
| & aria.state.expanded? |
| ) |
| aria.role.tab = |
| attribute role { string "tab" } |
| |
| common.attrs.aria |= aria.tab |
| common.attrs.aria.role.tab |= aria.tab |
| |
| ## tablist |
| aria.tablist = |
| ( aria.role.tablist |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| & aria.prop.level? |
| & aria.prop.multiselectable? |
| ) |
| aria.role.tablist = |
| attribute role { string "tablist" } |
| common.attrs.aria |= aria.tablist |
| common.attrs.aria.role.tablist |= aria.tablist |
| |
| ## tabpanel |
| aria.tabpanel = |
| ( aria.role.tabpanel |
| & aria.state.expanded? |
| ) |
| aria.role.tabpanel = |
| attribute role { string "tabpanel" } |
| |
| common.attrs.aria |= aria.tabpanel |
| common.attrs.aria.role.tabpanel |= aria.tabpanel |
| |
| ## textbox |
| aria.textbox = |
| ( aria.role.textbox |
| & aria.prop.activedescendant? |
| & aria.prop.autocomplete? # not inherited |
| & aria.prop.multiline? # not inherited |
| & aria.prop.readonly? # not inherited |
| & aria.prop.required? |
| ) |
| aria.role.textbox = |
| attribute role { string "textbox" } |
| |
| common.attrs.aria |= aria.textbox |
| common.attrs.aria.role.textbox |= aria.textbox |
| |
| ## timer |
| aria.timer = |
| ( aria.role.timer |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.timer = |
| attribute role { string "timer" } |
| |
| common.attrs.aria |= aria.timer |
| |
| ## toolbar |
| aria.toolbar = |
| ( aria.role.toolbar |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| ) |
| aria.role.toolbar = |
| attribute role { string "toolbar" } |
| |
| common.attrs.aria |= aria.toolbar |
| common.attrs.aria.role.toolbar |= aria.toolbar |
| |
| ## tooltip |
| aria.tooltip = |
| ( aria.role.tooltip |
| & aria.state.expanded? |
| ) |
| aria.role.tooltip = |
| attribute role { string "tooltip" } |
| |
| common.attrs.aria |= aria.tooltip |
| |
| ## tree |
| aria.tree = |
| ( aria.role.tree |
| & aria.prop.multiselectable? # not inherited |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| & aria.prop.required? |
| ) |
| aria.role.tree = |
| attribute role { string "tree" } |
| |
| common.attrs.aria |= aria.tree |
| common.attrs.aria.role.tree |= aria.tree |
| |
| ## treegrid |
| aria.treegrid = |
| ( aria.role.treegrid |
| & aria.prop.activedescendant? |
| & aria.state.expanded? |
| & aria.prop.level? |
| & aria.prop.multiselectable? |
| & aria.prop.readonly? |
| & aria.prop.required? |
| ) |
| aria.role.treegrid = |
| attribute role { string "treegrid" } |
| |
| common.attrs.aria |= aria.treegrid |
| |
| ## treeitem |
| aria.treeitem = |
| ( aria.role.treeitem |
| & aria.state.checked? |
| & aria.state.expanded? |
| & aria.prop.level? |
| & aria.prop.posinset? |
| & aria.state.selected? |
| & aria.prop.setsize? |
| ) |
| aria.role.treeitem = |
| attribute role { string "treeitem" } |
| |
| common.attrs.aria |= aria.treeitem |
| common.attrs.aria.role.treeitem |= aria.treeitem |