& progress.attrs.max?
& ( common.attrs.aria.implicit.progressbar
| common.attrs.aria.role.progressbar
- | common.attrs.aria.role.presentation
- | common.attrs.aria.role.menuitem
)?
)
progress.attrs.value =
( common.attrs
& details.attrs.open?
& ( common.attrs.aria.implicit.group # aria-expanded must be true if open attr present; check by assertions
- | common.attrs.aria.role.alertdialog
- | common.attrs.aria.role.banner
- | common.attrs.aria.role.button
- | common.attrs.aria.role.combobox
- | common.attrs.aria.role.dialog
- | common.attrs.aria.role.directory
| common.attrs.aria.role.group
- | common.attrs.aria.role.heading
- | common.attrs.aria.role.img
- | common.attrs.aria.role.link
- | common.attrs.aria.role.list
- | common.attrs.aria.role.listbox
- | common.attrs.aria.role.listitem
- | common.attrs.aria.role.log
- | common.attrs.aria.role.marquee
- | common.attrs.aria.role.menu
- | common.attrs.aria.role.menubar
- | common.attrs.aria.role.note
- | common.attrs.aria.role.status
- | common.attrs.aria.role.tab
- | common.attrs.aria.role.tablist
- | common.attrs.aria.role.tabpanel
- | common.attrs.aria.role.toolbar
- | common.attrs.aria.role.tree
- | common.attrs.aria.role.treeitem
- | common.attrs.aria.landmark.application
- | common.attrs.aria.landmark.article
- | common.attrs.aria.landmark.complementary
- | common.attrs.aria.landmark.contentinfo
- | common.attrs.aria.landmark.document
- | common.attrs.aria.landmark.form
- | common.attrs.aria.landmark.main
- | common.attrs.aria.landmark.navigation
- | common.attrs.aria.landmark.search
)?
)
details.attrs.open =
element summary { summary.inner & summary.attrs }
summary.attrs =
( common.attrs
- & ( common.attrs.aria.role.presentation
- | common.attrs.aria.role.menuitem
+ & ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
)?
)
element hr { hr.inner & hr.attrs }
hr.attrs =
( common.attrs
- & ( common.attrs.aria.role.separator
- | common.attrs.aria.role.presentation
- | common.attrs.aria.role.menuitem
- )?
+ & common.attrs.aria.role.separator?
)
hr.inner =
( empty )
element dl { dl.inner & dl.attrs }
dl.attrs =
( common.attrs
- & common.attrs.aria?
+ & ( common.attrs.aria.implicit.list
+ | common.attrs.aria.role.list
+ )?
)
dl.inner =
( ( ( dt.elem
& shared-form.attrs.readonly?
& textarea.attrs.rows-and-cols-wf1
& ( common.attrs.aria.implicit.textbox
- | common.attrs.aria.role.presentation
- | common.attrs.aria.role.menuitem
| common.attrs.aria.role.textbox
)?
#FIXME onfocus, onblur, onselect,onchange
& option.attrs.value?
& ( common.attrs.aria.implicit.option
| common.attrs.aria.role.option
- | common.attrs.aria.role.menuitem
- | common.attrs.aria.role.menuitemradio
- | common.attrs.aria.role.menuitemcheckbox
- | common.attrs.aria.role.presentation
)?
)
option.attrs.selected =
# FIXME onfocus, onblur, onchange
& ( common.attrs.aria.implicit.listbox
| common.attrs.aria.role.listbox # aria-multiselectable depends on "multiple" value; check in assertions
- | common.attrs.aria.role.menu
- | common.attrs.aria.role.presentation
- | common.attrs.aria.role.menuitem
)?
)
select.attrs.size =
& form.attrs.enctype?
& common-form.attrs.name?
& form.attrs.accept-charset?
- & common.attrs.aria?
+ & ( common.attrs.aria.implicit.group
+ | common.attrs.aria.role.group
+ )?
)
form.attrs.action =
attribute action {