common-form.attrs.name =
attribute name {
- string #REVISIT should this be restricted somehow? No & and = perhaps?
+ form.data.nonemptystring
}
common-form.attrs.disabled =
& ( common.attrs.aria.implicit.checkbox
| common.attrs.aria.role.checkbox
| common.attrs.aria.role.menuitemcheckbox
+ | common.attrs.aria.role.switch
)?
)
input.checkbox.attrs.type =
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.radio
+ | common.attrs.aria.role.switch
)?
)
input.button.attrs.type =
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.radio
+ | common.attrs.aria.role.switch
)?
)
input.image.attrs.type =
& 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 =
& button.attrs.value?
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
+ | common.attrs.aria.role.checkbox
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
& button.attrs.value? #REVISIT I guess this still affects the DOM
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
+ | common.attrs.aria.role.checkbox
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.radio
+ | common.attrs.aria.role.switch
)?
)
button.reset.attrs.type =
& button.attrs.value? #REVISIT I guess this still affects the DOM
& ( common.attrs.aria.implicit.button
| common.attrs.aria.role.button
+ | common.attrs.aria.role.checkbox
| common.attrs.aria.role.link
| common.attrs.aria.role.menuitem
| common.attrs.aria.role.menuitemcheckbox
| common.attrs.aria.role.menuitemradio
| common.attrs.aria.role.radio
+ | common.attrs.aria.role.switch
)?
)
button.button.attrs.type =
& form.attrs.enctype?
& common-form.attrs.name?
& form.attrs.accept-charset?
- & common.attrs.aria?
+ & ( common.attrs.aria.implicit.form
+ | common.attrs.aria.landmark.form
+ | common.attrs.aria.role.search
+ | common.attrs.aria.role.presentation
+ )?
)
form.attrs.action =
attribute action {