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 @@