diff --git a/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc b/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc index 9bed6bbf35ec..3f778ef44102 100644 --- a/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc @@ -8,6 +8,11 @@ common.elem.phrasing |= svg common.elem.phrasing |= math +math.attributes &= + ( common.attrs.aria.role.math + | common.attrs.aria.implicit.math + )? + SVG.foreignObject.content |= ( math | common.inner.flow diff --git a/xml/relaxng/src/resources/html5-schema/html5/applications.rnc b/xml/relaxng/src/resources/html5-schema/html5/applications.rnc index c45417cc9d87..6e9b54fb33bf 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/applications.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/applications.rnc @@ -98,18 +98,7 @@ datatypes w = "http://whattf.org/datatype-draft" ( common.attrs & dialog.attrs.open? & ( common.attrs.aria.implicit.dialog - | common.attrs.aria.role.alert | common.attrs.aria.role.alertdialog - | common.attrs.aria.role.application - | common.attrs.aria.role.contentinfo - | common.attrs.aria.role.dialog - | common.attrs.aria.role.log - | common.attrs.aria.role.marquee - | common.attrs.aria.role.region - | common.attrs.aria.role.status - | common.attrs.aria.landmark.document - | common.attrs.aria.landmark.main - | common.attrs.aria.landmark.search )? ) dialog.attrs.open = @@ -126,12 +115,14 @@ datatypes w = "http://whattf.org/datatype-draft" element menu { menu.inner & menu.attrs } menu.attrs = ( common.attrs - & ( common.attrs.aria.implicit.toolbar + & ( common.attrs.aria.implicit.list | common.attrs.aria.role.directory + | common.attrs.aria.role.group | common.attrs.aria.role.list | common.attrs.aria.role.listbox | common.attrs.aria.role.menu | common.attrs.aria.role.menubar + | common.attrs.aria.role.radiogroup | common.attrs.aria.role.tablist | common.attrs.aria.role.toolbar | common.attrs.aria.role.tree @@ -226,11 +217,11 @@ datatypes w = "http://whattf.org/datatype-draft" ) summary.inner = ( common.inner.phrasing - | h1.elem - | h2.elem - | h3.elem - | h4.elem - | h5.elem - | h6.elem - | hgroup.elem + & h1.elem? + & h2.elem? + & h3.elem? + & h4.elem? + & h5.elem? + & h6.elem? + & hgroup.elem? ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/aria.rnc b/xml/relaxng/src/resources/html5-schema/html5/aria.rnc index a0b2474a1bca..adf32917d4b8 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/aria.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/aria.rnc @@ -104,6 +104,9 @@ common.attrs.aria.implicit.listitem |= & aria.state.expanded? ) +common.attrs.aria.implicit.math |= + ( aria.state.expanded? ) + common.attrs.aria.implicit.option |= ( aria.prop.posinset? & aria.prop.setsize? @@ -146,6 +149,14 @@ common.attrs.aria.implicit.searchbox |= & aria.prop.required? ) +common.attrs.aria.implicit.separator |= + ( aria.prop.valuemax? + & aria.prop.valuemin? + & aria.prop.valuenow? + & aria.prop.valuetext? + & aria.prop.orientation? + ) + common.attrs.aria.implicit.slider |= ( aria.prop.valuemax? & aria.prop.valuemin? @@ -276,34 +287,9 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark ## 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" ) - } - } + { + list { ("copy" | "execute" | "link" | "move" | "none" | "popup") + } + } ## expanded aria.state.expanded = @@ -1047,6 +1033,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark attribute role { string "math" } common.attrs.aria |= aria.math + common.attrs.aria.role.math |= aria.math ## menu aria.menu = @@ -1292,6 +1279,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark attribute role { string "scrollbar" } common.attrs.aria |= aria.scrollbar + common.attrs.aria.role.scrollbar |= aria.scrollbar ## search aria.search = diff --git a/xml/relaxng/src/resources/html5-schema/html5/block.rnc b/xml/relaxng/src/resources/html5-schema/html5/block.rnc index a18acc2e612c..29b9232a93e4 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/block.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/block.rnc @@ -26,7 +26,8 @@ datatypes w = "http://whattf.org/datatype-draft" element hr { hr.inner & hr.attrs } hr.attrs = ( common.attrs - & ( common.attrs.aria.role.separator + & ( common.attrs.aria.implicit.separator + | common.attrs.aria.role.separator | common.attrs.aria.role.presentation | common.attrs.aria.role.doc-pagebreak )? @@ -279,4 +280,11 @@ datatypes w = "http://whattf.org/datatype-draft" ) legend.inner = ( common.inner.phrasing + & h1.elem? + & h2.elem? + & h3.elem? + & h4.elem? + & h5.elem? + & h6.elem? + & hgroup.elem? ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/common.rnc b/xml/relaxng/src/resources/html5-schema/html5/common.rnc index ceb61ee65c86..f559c3b1361d 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/common.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/common.rnc @@ -477,7 +477,6 @@ common.attrs.aria.role.cell |= ( notAllowed ) common.attrs.aria.role.checkbox = ( notAllowed ) common.attrs.aria.role.combobox = ( notAllowed ) common.attrs.aria.role.complementary = ( notAllowed ) -common.attrs.aria.role.contentinfo = ( notAllowed ) common.attrs.aria.role.dialog = ( notAllowed ) common.attrs.aria.role.directory = ( notAllowed ) common.attrs.aria.role.document = ( notAllowed ) @@ -498,7 +497,6 @@ common.attrs.aria.role.menubar = ( notAllowed ) common.attrs.aria.role.menuitem = ( notAllowed ) common.attrs.aria.role.menuitemcheckbox = ( notAllowed ) common.attrs.aria.role.menuitemradio = ( notAllowed ) -common.attrs.aria.role.note = ( notAllowed ) common.attrs.aria.role.option = ( notAllowed ) common.attrs.aria.role.presentation = ( notAllowed ) common.attrs.aria.role.progressbar = ( notAllowed ) @@ -543,6 +541,7 @@ common.attrs.aria.implicit.list = ( notAllowed ) common.attrs.aria.implicit.listbox = ( notAllowed ) common.attrs.aria.implicit.listitem = ( notAllowed ) common.attrs.aria.implicit.main = ( notAllowed ) +common.attrs.aria.implicit.math |= ( notAllowed ) common.attrs.aria.implicit.navigation = ( notAllowed ) common.attrs.aria.implicit.option = ( notAllowed ) common.attrs.aria.implicit.progressbar = ( notAllowed ) @@ -553,6 +552,7 @@ common.attrs.aria.implicit.rowgroup |= ( notAllowed ) common.attrs.aria.implicit.searchbox |= ( notAllowed ) common.attrs.aria.implicit.section = ( notAllowed ) common.attrs.aria.implicit.select = ( notAllowed ) +common.attrs.aria.implicit.separator = ( notAllowed ) common.attrs.aria.implicit.slider = ( notAllowed ) common.attrs.aria.implicit.spinbutton = ( notAllowed ) common.attrs.aria.implicit.status = ( notAllowed ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc b/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc index f91fc95b3def..201c34a87463 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc @@ -19,9 +19,6 @@ datatypes w = "http://whattf.org/datatype-draft" & script.attrs.integrity? & embedded.content.attrs.crossorigin? & referrerpolicy? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) script.elem.imported = element script { script.inner.imported & script.attrs.imported } @@ -37,9 +34,6 @@ datatypes w = "http://whattf.org/datatype-draft" & script.attrs.integrity? & embedded.content.attrs.crossorigin? & referrerpolicy? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) script.attrs.src = attribute src { @@ -108,11 +102,7 @@ datatypes w = "http://whattf.org/datatype-draft" noscript.inner.flow = ( common.inner.flow ) noscript.attrs = - ( common.attrs - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? - ) + ( common.attrs ) common.elem.metadata |= noscript.elem.head common.elem.phrasing |= noscript.elem.phrasing @@ -123,8 +113,7 @@ datatypes w = "http://whattf.org/datatype-draft" common.attrs.scripting &= ( scripting.attr.onabort? - & scripting.attr.onautocomplete? - & scripting.attr.onautocompleteerror? + & scripting.attr.onauxclick? & scripting.attr.onblur? & scripting.attr.oncancel? & scripting.attr.oncanplay? @@ -132,13 +121,14 @@ datatypes w = "http://whattf.org/datatype-draft" & scripting.attr.onchange? & scripting.attr.onclick? & scripting.attr.onclose? - & scripting.attr.oncuechange? & scripting.attr.oncontextmenu? + & scripting.attr.oncopy? + & scripting.attr.oncuechange? + & scripting.attr.oncut? & scripting.attr.ondblclick? & scripting.attr.ondrag? & scripting.attr.ondragend? & scripting.attr.ondragenter? - & scripting.attr.ondragexit? & scripting.attr.ondragleave? & scripting.attr.ondragover? & scripting.attr.ondragstart? @@ -150,6 +140,7 @@ datatypes w = "http://whattf.org/datatype-draft" & scripting.attr.onfocus? & scripting.attr.onfocusin? & scripting.attr.onfocusout? + & scripting.attr.onformdata? & scripting.attr.oninput? & scripting.attr.oninvalid? & scripting.attr.onkeydown? @@ -166,7 +157,7 @@ datatypes w = "http://whattf.org/datatype-draft" & scripting.attr.onmouseout? & scripting.attr.onmouseover? & scripting.attr.onmouseup? - & scripting.attr.onwheel? + & scripting.attr.onpaste? & scripting.attr.onpause? & scripting.attr.onplay? & scripting.attr.onplaying? @@ -175,27 +166,31 @@ datatypes w = "http://whattf.org/datatype-draft" & scripting.attr.onreset? & scripting.attr.onresize? & scripting.attr.onscroll? + & scripting.attr.onsecuritypolicyviolation? & scripting.attr.onseeked? & scripting.attr.onseeking? & scripting.attr.onselect? - & scripting.attr.onsort? + & scripting.attr.onslotchange? & scripting.attr.onstalled? & scripting.attr.onsubmit? & scripting.attr.onsuspend? & scripting.attr.ontimeupdate? & scripting.attr.ontoggle? + & scripting.attr.ontransitioncancel? + & scripting.attr.ontransitionend? + & scripting.attr.ontransitionrun? + & scripting.attr.ontransitionstart? & scripting.attr.onvolumechange? & scripting.attr.onwaiting? + & scripting.attr.onwheel? ) common.attrs.other &= common.attrs.scripting scripting.attr.onabort = attribute onabort { common.data.functionbody } - scripting.attr.onautocomplete = - attribute onautocomplete { common.data.functionbody } - scripting.attr.onautocompleteerror = - attribute onautocompleteerror { common.data.functionbody } + scripting.attr.onauxclick = + attribute onauxclick { common.data.functionbody } scripting.attr.onblur = attribute onblur { common.data.functionbody } scripting.attr.oncanplay = @@ -212,8 +207,12 @@ datatypes w = "http://whattf.org/datatype-draft" attribute onclose { common.data.functionbody } scripting.attr.oncontextmenu = attribute oncontextmenu { common.data.functionbody } + scripting.attr.oncopy = + attribute oncopy { common.data.functionbody } scripting.attr.oncuechange = attribute oncuechange { common.data.functionbody } + scripting.attr.oncut = + attribute oncut { common.data.functionbody } scripting.attr.ondblclick = attribute ondblclick { common.data.functionbody } scripting.attr.ondrag = @@ -222,8 +221,6 @@ datatypes w = "http://whattf.org/datatype-draft" attribute ondragend { common.data.functionbody } scripting.attr.ondragenter = attribute ondragenter { common.data.functionbody } - scripting.attr.ondragexit = - attribute ondragexit { common.data.functionbody } scripting.attr.ondragleave = attribute ondragleave { common.data.functionbody } scripting.attr.ondragover = @@ -248,6 +245,8 @@ datatypes w = "http://whattf.org/datatype-draft" attribute onfocusout { common.data.functionbody } scripting.attr.onformchange = attribute onformchange { common.data.functionbody } + scripting.attr.onformdata = + attribute onformdata { common.data.functionbody } scripting.attr.onforminput = attribute onforminput { common.data.functionbody } scripting.attr.oninput = @@ -284,6 +283,8 @@ datatypes w = "http://whattf.org/datatype-draft" attribute onmouseup { common.data.functionbody } scripting.attr.onwheel = attribute onwheel { common.data.functionbody } + scripting.attr.onpaste = + attribute onpaste { common.data.functionbody } scripting.attr.onpause = attribute onpause { common.data.functionbody } scripting.attr.onplay = @@ -300,14 +301,16 @@ datatypes w = "http://whattf.org/datatype-draft" attribute onresize { common.data.functionbody } scripting.attr.onscroll = attribute onscroll { common.data.functionbody } + scripting.attr.onsecuritypolicyviolation = + attribute onsecuritypolicyviolation { common.data.functionbody } scripting.attr.onseeked = attribute onseeked { common.data.functionbody } scripting.attr.onseeking = attribute onseeking { common.data.functionbody } scripting.attr.onselect = attribute onselect { common.data.functionbody } - scripting.attr.onsort = - attribute onsort { common.data.functionbody } + scripting.attr.onslotchange = + attribute onslotchange { common.data.functionbody } scripting.attr.onstalled = attribute onstalled { common.data.functionbody } scripting.attr.onsubmit = @@ -318,6 +321,14 @@ datatypes w = "http://whattf.org/datatype-draft" attribute ontimeupdate { common.data.functionbody } scripting.attr.ontoggle = attribute ontoggle { common.data.functionbody } + scripting.attr.ontransitioncancel = + attribute ontransitioncancel { common.data.functionbody } + scripting.attr.ontransitionend = + attribute ontransitionend { common.data.functionbody } + scripting.attr.ontransitionrun = + attribute ontransitionrun { common.data.functionbody } + scripting.attr.ontransitionstart = + attribute ontransitionstart { common.data.functionbody } scripting.attr.onvolumechange = attribute onvolumechange { common.data.functionbody } scripting.attr.onwaiting = diff --git a/xml/relaxng/src/resources/html5-schema/html5/data.rnc b/xml/relaxng/src/resources/html5-schema/html5/data.rnc index 24c2b110ca31..7eada66d874e 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/data.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/data.rnc @@ -65,9 +65,6 @@ datatypes w = "http://whattf.org/datatype-draft" & meter.attrs.high? & meter.attrs.max? & meter.attrs.optimum? - & ( common.attrs.aria.implicit.progressbar - | common.attrs.aria.role.progressbar - )? ) meter.attrs.value = attribute value { diff --git a/xml/relaxng/src/resources/html5-schema/html5/embed.rnc b/xml/relaxng/src/resources/html5-schema/html5/embed.rnc index 08b9ecdf12dc..e2d80718e4af 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/embed.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/embed.rnc @@ -10,26 +10,50 @@ namespace local = "" ## Images: - img.elem = - element img { img.inner & img.attrs } - img.attrs = + shared-img.attrs = ( common.attrs & img.attrs.src & img.attrs.srcset? & img.attrs.sizes? - & img.attrs.alt? # ARIA: if alt empty, only allowed role value is "presentation"; check in assertions + & img.attrs.generator-unable-to-provide-required-alt? & img.attrs.height? & img.attrs.width? & img.attrs.usemap? & img.attrs.ismap? & img.attrs.decoding? + & img.attrs.loading? & img.attrs.border? # obsolete & referrerpolicy? & embedded.content.attrs.crossorigin? + ) + + img.elem = + element img { img.inner & img.attrs } + img.attrs = + ( shared-img.attrs + & img.attrs.alt? & ( common.attrs.aria.implicit.img - | common.attrs.aria + | common.attrs.aria.role.button + | common.attrs.aria.role.checkbox + | common.attrs.aria.role.img + | common.attrs.aria.role.link + | common.attrs.aria.role.menuitem + | common.attrs.aria.role.menuitemcheckbox + | common.attrs.aria.role.menuitemradio + | common.attrs.aria.role.none + | common.attrs.aria.role.option + | common.attrs.aria.role.presentation + | common.attrs.aria.role.progressbar + | common.attrs.aria.role.scrollbar + | common.attrs.aria.role.separator + | common.attrs.aria.role.slider + | common.attrs.aria.role.switch + | common.attrs.aria.role.tab + | common.attrs.aria.role.treeitem + | common.attrs.aria.role.doc-cover )? ) + img.attrs.src = attribute src { common.data.uri.non-empty @@ -46,6 +70,10 @@ namespace local = "" attribute alt { text } + img.attrs.generator-unable-to-provide-required-alt = + attribute generator-unable-to-provide-required-alt { + string "" + } img.attrs.height = attribute height { common.data.integer.non-negative @@ -69,6 +97,10 @@ namespace local = "" | string "auto" ) } + img.attrs.loading = + attribute loading { + w:string "lazy" | w:string "eager" + } img.attrs.border = attribute border { common.data.zero @@ -181,8 +213,7 @@ namespace local = "" | inputmode | nonce | onabort - | onautocomplete - | onautocompleteerror + | onauxclick | onblur | oncancel | oncanplay @@ -191,12 +222,13 @@ namespace local = "" | onclick | onclose | oncontextmenu + | oncopy | oncuechange + | oncut | ondblclick | ondrag | ondragend | ondragenter - | ondragexit | ondragleave | ondragover | ondragstart @@ -208,6 +240,7 @@ namespace local = "" | onfocus | onfocusin | onfocusout + | onformdata | oninput | oninvalid | onkeydown @@ -224,7 +257,7 @@ namespace local = "" | onmouseout | onmouseover | onmouseup - | onwheel + | onpaste | onpause | onplay | onplaying @@ -233,17 +266,23 @@ namespace local = "" | onreset | onresize | onscroll + | onsecuritypolicyviolation | onseeked | onseeking + | onslotchange | onselect - | onsort | onstalled | onsubmit | onsuspend | ontimeupdate | ontoggle + | ontransitioncancel + | ontransitionend + | ontransitionrun + | ontransitionstart | onvolumechange | onwaiting + | onwheel | role | aria-atomic | aria-busy @@ -278,6 +317,8 @@ namespace local = "" | itemid | name | align + | hspace + | vspace | about | prefix | property @@ -369,7 +410,6 @@ namespace local = "" & ( common.attrs.aria.role.application | common.attrs.aria.landmark.document | common.attrs.aria.role.img - | common.attrs.aria.role.presentation )? ) object.attrs.data = @@ -416,9 +456,6 @@ namespace local = "" ( common.attrs & param.attrs.name & param.attrs.value - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) param.attrs.name = attribute name { @@ -442,10 +479,9 @@ namespace local = "" & iframe.attrs.name? & iframe.attrs.width? & iframe.attrs.height? + & iframe.attrs.loading? & iframe.attrs.sandbox? & iframe.attrs.allowfullscreen? - & iframe.attrs.allowpaymentrequest? - & iframe.attrs.allowusermedia? & iframe.attrs.allow? & referrerpolicy? & ( common.attrs.aria.role.application @@ -470,6 +506,10 @@ namespace local = "" attribute height { common.data.integer.non-negative } + iframe.attrs.loading = + attribute loading { + w:string "lazy" | w:string "eager" + } iframe.attrs.width = attribute width { common.data.integer.non-negative @@ -482,14 +522,6 @@ namespace local = "" attribute allowfullscreen { w:string "allowfullscreen" | w:string "" } & v5only - iframe.attrs.allowpaymentrequest = - attribute allowpaymentrequest { - w:string "allowpaymentrequest" | w:string "" - } & v5only - iframe.attrs.allowusermedia = - attribute allowusermedia { - w:string "allowusermedia" | w:string "" - } & v5only iframe.attrs.allow = attribute allow { common.data.feature-policy @@ -511,9 +543,6 @@ namespace local = "" map.attrs = ( common.attrs & map.attrs.name - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) # REVISIT make id required in Schematron map.attrs.name = attribute name { diff --git a/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc b/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc index 7a98315d7c0b..9511df8f6483 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc @@ -302,9 +302,9 @@ datatypes w = "http://whattf.org/datatype-draft" attribute content { string } - + common.elem.metadata |= meta.http-equiv.content-language.elem # not quite right per spec - # if the definition is + # if the definition is # reused in another language ## Key-pair generator/input control: @@ -1015,6 +1015,45 @@ datatypes w = "http://whattf.org/datatype-draft" ## hspace attribute + embed.attrs.hspace = + attribute hspace { + string + } + embed.attrs &= embed.attrs.hspace? + + iframe.attrs.hspace = + attribute hspace { + string + } + iframe.attrs &= iframe.attrs.hspace? + + input.attrs.hspace = + attribute hspace { + string + } + input.text.attrs &= input.attrs.hspace? + input.password.attrs &= input.attrs.hspace? + input.checkbox.attrs &= input.attrs.hspace? + input.radio.attrs &= input.attrs.hspace? + input.button.attrs &= input.attrs.hspace? + input.submit.attrs &= input.attrs.hspace? + input.reset.attrs &= input.attrs.hspace? + input.file.attrs &= input.attrs.hspace? + input.image.attrs &= input.attrs.hspace? + input.datetime.attrs &= input.attrs.hspace? + input.datetime-local.attrs &= input.attrs.hspace? + input.date.attrs &= input.attrs.hspace? + input.month.attrs &= input.attrs.hspace? + input.time.attrs &= input.attrs.hspace? + input.week.attrs &= input.attrs.hspace? + input.number.attrs &= input.attrs.hspace? + input.range.attrs &= input.attrs.hspace? + input.email.attrs &= input.attrs.hspace? + input.url.attrs &= input.attrs.hspace? + input.search.attrs &= input.attrs.hspace? + input.tel.attrs &= input.attrs.hspace? + input.color.attrs &= input.attrs.hspace? + img.attrs.hspace = attribute hspace { string @@ -1246,6 +1285,45 @@ datatypes w = "http://whattf.org/datatype-draft" ## vspace attribute + embed.attrs.vspace = + attribute vspace { + string + } + embed.attrs &= embed.attrs.vspace? + + iframe.attrs.vspace = + attribute vspace { + string + } + iframe.attrs &= iframe.attrs.vspace? + + input.attrs.vspace = + attribute vspace { + string + } + input.text.attrs &= input.attrs.vspace? + input.password.attrs &= input.attrs.vspace? + input.checkbox.attrs &= input.attrs.vspace? + input.radio.attrs &= input.attrs.vspace? + input.button.attrs &= input.attrs.vspace? + input.submit.attrs &= input.attrs.vspace? + input.reset.attrs &= input.attrs.vspace? + input.file.attrs &= input.attrs.vspace? + input.image.attrs &= input.attrs.vspace? + input.datetime.attrs &= input.attrs.vspace? + input.datetime-local.attrs &= input.attrs.vspace? + input.date.attrs &= input.attrs.vspace? + input.month.attrs &= input.attrs.vspace? + input.time.attrs &= input.attrs.vspace? + input.week.attrs &= input.attrs.vspace? + input.number.attrs &= input.attrs.vspace? + input.range.attrs &= input.attrs.vspace? + input.email.attrs &= input.attrs.vspace? + input.url.attrs &= input.attrs.vspace? + input.search.attrs &= input.attrs.vspace? + input.tel.attrs &= input.attrs.vspace? + input.color.attrs &= input.attrs.vspace? + img.attrs.vspace = attribute vspace { string diff --git a/xml/relaxng/src/resources/html5-schema/html5/media.rnc b/xml/relaxng/src/resources/html5-schema/html5/media.rnc index c3d0942dd8d7..43d9444e2f54 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/media.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/media.rnc @@ -44,9 +44,6 @@ datatypes w = "http://whattf.org/datatype-draft" ( common.attrs & source.attrs.src & source.attrs.type? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) source.attrs.src = attribute src { @@ -153,9 +150,6 @@ datatypes w = "http://whattf.org/datatype-draft" & track.attrs.srclang? & track.attrs.label? & track.attrs.default? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) track.attrs.kind = attribute kind { diff --git a/xml/relaxng/src/resources/html5-schema/html5/meta.rnc b/xml/relaxng/src/resources/html5-schema/html5/meta.rnc index c8ae8f89449a..f962ac93b381 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/meta.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/meta.rnc @@ -22,9 +22,6 @@ datatypes w = "http://whattf.org/datatype-draft" head.attrs = ( common.attrs # & head.attrs.profile? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) # head.attrs.profile = # attribute profile { @@ -106,11 +103,7 @@ datatypes w = "http://whattf.org/datatype-draft" title.elem = element title { title.inner & title.attrs } title.attrs = - ( common.attrs - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? - ) + ( common.attrs ) title.inner = ( text ) @@ -159,15 +152,13 @@ datatypes w = "http://whattf.org/datatype-draft" & referrerpolicy? & link.attrs.sizes? & link.attrs.color? + & link.attrs.disabled? & link.attrs.scope? & link.attrs.updateviacache? & link.attrs.workertype? # link.attrs.title included in common.attrs & embedded.content.attrs.crossorigin? - & ( common.attrs.aria.role.link - | common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? + & common.attrs.aria.role.link? ) link.attrs.href = attribute href { @@ -175,7 +166,7 @@ datatypes w = "http://whattf.org/datatype-draft" } link.attrs.rel = attribute rel { - w:link-rel + string } link.attrs.as = attribute as { @@ -184,6 +175,7 @@ datatypes w = "http://whattf.org/datatype-draft" | string "audioworklet" | string "document" | string "embed" + | string "fetch" | string "font" | string "image" | string "manifest" @@ -211,6 +203,10 @@ datatypes w = "http://whattf.org/datatype-draft" attribute color { common.data.color } + link.attrs.disabled = + attribute disabled { + w:string "disabled" | w:string "" + } link.attrs.scope = attribute scope { common.data.uri @@ -242,9 +238,6 @@ datatypes w = "http://whattf.org/datatype-draft" & style.attrs.type? & style.attrs.media? # style.attrs.title included in common.attrs - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) style.attrs.type = attribute type { @@ -274,9 +267,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.microdata.itemscope? & common.attrs.microdata.itemtype? & common.attrs.microdata.itemid? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.name.attrs.name = attribute name { @@ -302,9 +292,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.http-equiv.attrs.http-equiv.refresh & meta.http-equiv.attrs.content.refresh - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.http-equiv.attrs.http-equiv.refresh = attribute http-equiv { @@ -329,9 +316,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.http-equiv.attrs.http-equiv.default-style & meta.http-equiv.attrs.content.default-style - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.http-equiv.attrs.http-equiv.default-style = attribute http-equiv { @@ -357,9 +341,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.http-equiv.attrs.http-equiv.content-security-policy & meta.http-equiv.attrs.content.content-security-policy - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.http-equiv.attrs.http-equiv.content-security-policy = attribute http-equiv { @@ -382,9 +363,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.http-equiv.attrs.http-equiv.x-ua-compatible & meta.http-equiv.attrs.content.x-ua-compatible - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.http-equiv.attrs.http-equiv.x-ua-compatible = attribute http-equiv { @@ -406,9 +384,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.present & common.attrs.other & meta.charset.attrs.charset - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.charset.attrs.charset = attribute charset { @@ -430,9 +405,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.http-equiv.attrs.http-equiv.content-type & meta.http-equiv.attrs.content.content-type - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.http-equiv.attrs.http-equiv.content-type = attribute http-equiv { diff --git a/xml/relaxng/src/resources/html5-schema/html5/microdata.rnc b/xml/relaxng/src/resources/html5-schema/html5/microdata.rnc index 91616c846147..edb485bf3e89 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/microdata.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/microdata.rnc @@ -89,9 +89,6 @@ link.attrs &= common.attrs.microdata.itemid? & common.attrs.microdata.itemtype? & common.attrs.microdata.itemid? & meta.itemprop.attrs.content - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) meta.itemprop.attrs.content = attribute content { diff --git a/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc b/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc index ddd413bca544..2a1989734c3d 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc @@ -87,7 +87,7 @@ datatypes w = "http://whattf.org/datatype-draft" } shared-hyperlink.attrs.rel = attribute rel { - w:a-rel + string } shared-hyperlink.attrs.hreflang = attribute hreflang { diff --git a/xml/relaxng/src/resources/html5-schema/html5/rdfa.rnc b/xml/relaxng/src/resources/html5-schema/html5/rdfa.rnc index ade7e04eecec..65c0714dda29 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/rdfa.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/rdfa.rnc @@ -265,9 +265,6 @@ link.rdfa.attrs.phrasing = & meta.name.attrs.name? & common.attrs.rdfa.property & meta.name.attrs.content - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? ) common.elem.metadata |= meta.property.elem diff --git a/xml/relaxng/src/resources/html5-schema/html5/sectional.rnc b/xml/relaxng/src/resources/html5-schema/html5/sectional.rnc index 21c1926d5b6c..7fd9105105df 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/sectional.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/sectional.rnc @@ -119,11 +119,7 @@ element hgroup { hgroup.inner & hgroup.attrs } hgroup.attrs = ( common.attrs - & ( common.attrs.aria.implicit.heading - | common.attrs.aria.role.heading - | common.attrs.aria.role.tab - | common.attrs.aria.role.presentation - )? + & common.attrs.aria? ) hgroup.inner = ( ( h1.elem diff --git a/xml/relaxng/src/resources/html5-schema/html5/structural.rnc b/xml/relaxng/src/resources/html5-schema/html5/structural.rnc index d4d615f3cefd..356893484073 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/structural.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/structural.rnc @@ -12,19 +12,21 @@ | common.attrs.aria.role.alert | common.attrs.aria.role.alertdialog | common.attrs.aria.role.application - | common.attrs.aria.role.contentinfo | common.attrs.aria.role.dialog | common.attrs.aria.role.feed | common.attrs.aria.role.log | common.attrs.aria.role.marquee + | common.attrs.aria.role.presentation | common.attrs.aria.role.region | common.attrs.aria.role.status | common.attrs.aria.role.tabpanel | common.attrs.aria.landmark.banner | common.attrs.aria.landmark.complementary + | common.attrs.aria.landmark.contentinfo | common.attrs.aria.landmark.document | common.attrs.aria.landmark.main | common.attrs.aria.landmark.navigation + | common.attrs.aria.landmark.note | common.attrs.aria.landmark.search | common.attrs.aria.role.doc-abstract | common.attrs.aria.role.doc-acknowledgments @@ -38,10 +40,12 @@ | common.attrs.aria.role.doc-credits | common.attrs.aria.role.doc-dedication | common.attrs.aria.role.doc-endnotes + | common.attrs.aria.role.doc-epigraph | common.attrs.aria.role.doc-epilogue | common.attrs.aria.role.doc-errata | common.attrs.aria.role.doc-example | common.attrs.aria.role.doc-foreword + | common.attrs.aria.role.doc-glossary | common.attrs.aria.role.doc-index | common.attrs.aria.role.doc-introduction | common.attrs.aria.role.doc-notice @@ -112,6 +116,7 @@ | common.attrs.aria.role.feed | common.attrs.aria.role.region | common.attrs.aria.role.presentation + | common.attrs.aria.role.doc-dedication | common.attrs.aria.role.doc-example | common.attrs.aria.role.doc-footnote | common.attrs.aria.role.doc-pullquote diff --git a/xml/relaxng/src/resources/html5-schema/html5/web-forms.rnc b/xml/relaxng/src/resources/html5-schema/html5/web-forms.rnc index fde53bd954e7..0d13716aef80 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/web-forms.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/web-forms.rnc @@ -172,6 +172,7 @@ datatypes w = "http://whattf.org/datatype-draft" | common.attrs.aria.role.option | common.attrs.aria.role.radio | common.attrs.aria.role.switch + | common.attrs.aria.role.tab )? ) input.button.attrs.type = @@ -244,9 +245,6 @@ datatypes w = "http://whattf.org/datatype-draft" & common-form.attrs & input.file.attrs.type & input.file.attrs.accept? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.file.attrs.type = attribute type { @@ -392,8 +390,8 @@ datatypes w = "http://whattf.org/datatype-draft" ( common.attrs & optgroup.attrs.label & common-form.attrs.disabled? - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem + & ( common.attrs.aria.implicit.group + | common.attrs.aria.role.group )? ) optgroup.attrs.label = @@ -415,9 +413,11 @@ datatypes w = "http://whattf.org/datatype-draft" & select.attrs.size? & select.attrs.multiple? # 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.listbox # aria-multiselectable depends on "multiple" value; check in assertions + | common.attrs.aria.role.combobox | common.attrs.aria.role.menu + | common.attrs.aria.implicit.combobox + | common.attrs.aria.implicit.listbox )? ) select.attrs.size = diff --git a/xml/relaxng/src/resources/html5-schema/html5/web-forms2.rnc b/xml/relaxng/src/resources/html5-schema/html5/web-forms2.rnc index 0ed4eb7b015f..0fe0227a46db 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/web-forms2.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/web-forms2.rnc @@ -91,6 +91,17 @@ datatypes w = "http://whattf.org/datatype-draft" & shared-form.attrs.required? ) + shared-input-no-list.attrs = + ( input.attrs.autocomplete? + & shared-form.attrs.maxlength? + & shared-form.attrs.minlength? + & shared-form.attrs.pattern? + & shared-form.attrs.placeholder? + & shared-form.attrs.readonly? + & shared-form.attrs.required? + & shared-form.attrs.size? + ) + shared-input.attrs = ( shared-input-no-size.attrs & shared-form.attrs.size? @@ -199,7 +210,13 @@ datatypes w = "http://whattf.org/datatype-draft" input.file.attrs &= ( shared-input.attrs & input.attrs.multiple? + & aria.prop.required? + & input.input.attrs.capture? ) + input.input.attrs.capture = + attribute capture { + w:string "user" | w:string "environment" + } ## Image Submit Button: , Extensions @@ -235,9 +252,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.datetime-local.attrs.max? & input.attrs.step.float? & input.datetime-local.attrs.value? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.datetime-local.attrs.type = attribute type { @@ -271,9 +285,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.date.attrs.max? & input.attrs.step.integer? & input.date.attrs.value? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.date.attrs.type = attribute type { @@ -307,9 +318,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.month.attrs.max? & input.attrs.step.integer? & input.month.attrs.value? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.month.attrs.type = attribute type { @@ -343,9 +351,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.time.attrs.max? & input.attrs.step.float? & input.time.attrs.value? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.time.attrs.type = attribute type { @@ -379,9 +384,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.week.attrs.max? & input.attrs.step.integer? & input.week.attrs.value? - & ( common.attrs.aria? - | aria.prop.required? - ) ) input.week.attrs.type = attribute type { @@ -481,18 +483,23 @@ datatypes w = "http://whattf.org/datatype-draft" input.email.attrs = ( common.attrs & common-form.attrs - & shared-input.attrs + & shared-input-no-list.attrs & input.email.attrs.type & ( ( input.attrs.multiple & input.email.attrs.value.multiple? ) | input.email.attrs.value.single? )? - & ( common.attrs.aria.implicit.textbox - | common.attrs.aria.implicit.combobox - | common.attrs.aria.role.textbox - | common.attrs.aria.role.combobox - )? + & ( + ( common.attrs.aria.implicit.textbox + | common.attrs.aria.role.textbox + )? + | ( input.attrs.list + & ( common.attrs.aria.implicit.combobox + | common.attrs.aria.role.combobox + )? + )? + ) ) input.email.attrs.type = attribute type { @@ -516,15 +523,20 @@ datatypes w = "http://whattf.org/datatype-draft" input.url.attrs = ( common.attrs & common-form.attrs - & shared-input.attrs + & shared-input-no-list.attrs & input.url.attrs.type & input.url.attrs.value? - & ( common.attrs.aria.implicit.textbox - | common.attrs.aria.implicit.combobox - | common.attrs.aria.role.textbox - | common.attrs.aria.role.combobox - )? - ) + & ( + ( common.attrs.aria.implicit.textbox + | common.attrs.aria.role.textbox + )? + | ( input.attrs.list + & ( common.attrs.aria.implicit.combobox + | common.attrs.aria.role.combobox + )? + )? + ) + ) input.url.attrs.type = attribute type { w:string "url" @@ -569,15 +581,20 @@ datatypes w = "http://whattf.org/datatype-draft" input.tel.attrs = ( common.attrs & common-form.attrs - & shared-input.attrs + & shared-input-no-list.attrs & input.tel.attrs.type & input.tel.attrs.value? - & ( common.attrs.aria.implicit.textbox - | common.attrs.aria.implicit.combobox - | common.attrs.aria.role.textbox - | common.attrs.aria.role.combobox - )? - ) + & ( + ( common.attrs.aria.implicit.textbox + | common.attrs.aria.role.textbox + )? + | ( input.attrs.list + & ( common.attrs.aria.implicit.combobox + | common.attrs.aria.role.combobox + )? + )? + ) + ) input.tel.attrs.type = attribute type { w:string "tel" @@ -599,7 +616,6 @@ datatypes w = "http://whattf.org/datatype-draft" & input.color.attrs.type & input.color.attrs.value? & shared-input.attrs - & common.attrs.aria? ) input.color.attrs.type = attribute type { diff --git a/xml/relaxng/src/resources/html5-schema/html5chars.ent b/xml/relaxng/src/resources/html5-schema/html5chars.ent index bf56879675d4..ecd11cabc073 100644 --- a/xml/relaxng/src/resources/html5-schema/html5chars.ent +++ b/xml/relaxng/src/resources/html5-schema/html5chars.ent @@ -1,5 +1,5 @@