diff --git a/xml/relaxng/resources/resources/html5-schema/html5-all.rnc b/xml/relaxng/resources/resources/html5-schema/html5-all.rnc
deleted file mode 100644
index 64e18311f879..000000000000
--- a/xml/relaxng/resources/resources/html5-schema/html5-all.rnc
+++ /dev/null
@@ -1,3 +0,0 @@
-default namespace = "http://www.w3.org/1999/xhtml"
-include "html5-svg-mathml.rnc"
-include "html5/html5full-rdfa.rnc"
diff --git a/xml/relaxng/resources/resources/html5-schema/html5-its.rnc b/xml/relaxng/resources/resources/html5-schema/html5-its.rnc
deleted file mode 100644
index 29151500ecb9..000000000000
--- a/xml/relaxng/resources/resources/html5-schema/html5-its.rnc
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2012 Jirka Kosek
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-namespace local = ""
-
-include "html5-svg-mathml.rnc"
-include "html5/html5full.rnc"
-include "its2/its20-html5.rnc"
-
-common.attrs &= its-html-attributes
diff --git a/xml/relaxng/resources/resources/html5-schema/html5-no-microdata.rnc b/xml/relaxng/resources/resources/html5-schema/html5-no-microdata.rnc
deleted file mode 100644
index d59eab98b3a3..000000000000
--- a/xml/relaxng/resources/resources/html5-schema/html5-no-microdata.rnc
+++ /dev/null
@@ -1,2 +0,0 @@
-include "html5-svg-mathml.rnc"
-include "html5/html5full-no-microdata.rnc"
diff --git a/xml/relaxng/resources/resources/html5-schema/html5-rdfalite-w3c.rnc b/xml/relaxng/resources/resources/html5-schema/html5-rdfalite-w3c.rnc
deleted file mode 100644
index 6cbfa55d1643..000000000000
--- a/xml/relaxng/resources/resources/html5-schema/html5-rdfalite-w3c.rnc
+++ /dev/null
@@ -1,2 +0,0 @@
-include "html5-svg-mathml.rnc"
-include "html5/html5full-rdfalite.rnc"
diff --git a/xml/relaxng/resources/resources/html5-schema/html5-rdfalite.rnc b/xml/relaxng/resources/resources/html5-schema/html5-rdfalite.rnc
deleted file mode 100644
index 6cbfa55d1643..000000000000
--- a/xml/relaxng/resources/resources/html5-schema/html5-rdfalite.rnc
+++ /dev/null
@@ -1,2 +0,0 @@
-include "html5-svg-mathml.rnc"
-include "html5/html5full-rdfalite.rnc"
diff --git a/xml/relaxng/resources/resources/html5-schema/html5.rnc b/xml/relaxng/resources/resources/html5-schema/html5.rnc
index 64e18311f879..6d5b73bd63b4 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5.rnc
@@ -1,3 +1,13 @@
default namespace = "http://www.w3.org/1999/xhtml"
+
+include "html5/html5.rnc"
+
+include "html5/common-ext.rnc"
+include "html5/embed-ext.rnc"
+include "html5/core-scripting-ext.rnc"
+include "html5/meta-ext.rnc"
+include "html5/rdfa.rnc"
+
+include "html5/legacy.rnc"
+
include "html5-svg-mathml.rnc"
-include "html5/html5full-rdfa.rnc"
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/applications.rnc b/xml/relaxng/resources/resources/html5-schema/html5/applications.rnc
index 865813b3a7e9..06954ac6fdfb 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/applications.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/applications.rnc
@@ -50,6 +50,8 @@ datatypes w = "http://whattf.org/datatype-draft"
common.attrs.editing &=
( common.attrs.inputmode?
& common.attrs.spellcheck?
+ & common.attrs.autocorrect?
+ & common.attrs.writingsuggestions?
& common.attrs.autocapitalize?
& common.attrs.enterkeyhint?
)
@@ -78,6 +80,20 @@ datatypes w = "http://whattf.org/datatype-draft"
w:string "true" | w:string "false" | w:string ""
}
+## Autocorrection
+
+ common.attrs.autocorrect =
+ attribute autocorrect {
+ w:string "on" | w:string "off" | w:string ""
+ }
+
+## Writing suggestions
+
+ common.attrs.writingsuggestions =
+ attribute writingsuggestions {
+ w:string "true" | w:string "false" | w:string ""
+ }
+
## Autocapitalization
common.attrs.autocapitalize =
@@ -136,14 +152,20 @@ datatypes w = "http://whattf.org/datatype-draft"
dialog.attrs =
( common.attrs
& dialog.attrs.open?
+ & dialog.attrs.closedby?
& ( common.attrs.aria.implicit.dialog
| common.attrs.aria.role.alertdialog
+ | common.attrs.aria.role.dialog
)?
)
dialog.attrs.open =
attribute open {
w:string "open" | w:string ""
}
+ dialog.attrs.closedby =
+ attribute closedby {
+ w:string "any" | w:string "closerequest" | w:string "none"
+ }
dialog.inner =
( common.inner.flow )
common.elem.flow |= dialog.elem
@@ -155,7 +177,6 @@ datatypes w = "http://whattf.org/datatype-draft"
menu.attrs =
( common.attrs
& ( 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
@@ -229,10 +250,15 @@ datatypes w = "http://whattf.org/datatype-draft"
details.attrs =
( common.attrs
& details.attrs.open?
+ & details.attrs.name?
& ( common.attrs.aria.implicit.group # aria-expanded must be true if open attr present; check by assertions
| common.attrs.aria.role.group
)?
)
+ details.attrs.name =
+ attribute name {
+ w:non-empty-string
+ }
details.attrs.open =
attribute open {
w:string "open" | w:string ""
@@ -250,9 +276,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element summary { summary.inner & summary.attrs }
summary.attrs =
( common.attrs
- & ( common.attrs.aria.implicit.button
- | common.attrs.aria.role.button
- )?
+ & common.attrs.aria?
)
summary.inner =
( common.inner.phrasing
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/aria.rnc b/xml/relaxng/resources/resources/html5-schema/html5/aria.rnc
index c2d62730e2e1..a192f8203184 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/aria.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/aria.rnc
@@ -11,6 +11,8 @@
aria.global =
( aria.prop.atomic?
+ & aria.prop.braillelabel?
+ & aria.prop.brailleroledescription?
& aria.state.busy?
& aria.prop.controls?
& aria.state.current?
@@ -32,8 +34,6 @@ aria.global =
& aria.prop.description?
)
-common.attrs.other &= aria.global?
-
## States and Properties for Native Roles
common.attrs.aria.implicit.button |=
@@ -44,16 +44,22 @@ common.attrs.aria.implicit.button |=
common.attrs.aria.implicit.cell |=
( aria.prop.colspan?
& aria.prop.rowspan?
+ & aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
common.attrs.aria.implicit.checkbox |=
- ( aria.state.checked? )
+ ( aria.state.checked?
+ & aria.state.expanded?
+ & aria.prop.readonly?
+ & aria.prop.required?
+ )
common.attrs.aria.implicit.combobox |=
( aria.state.expanded?
& aria.prop.autocomplete?
& aria.prop.required?
+ & aria.prop.placeholder?
& aria.prop.activedescendant?
& aria.prop.readonly?
)
@@ -62,7 +68,9 @@ common.attrs.aria.implicit.definition |=
( aria.state.expanded? )
common.attrs.aria.implicit.dialog |=
- ( aria.state.expanded? )
+ ( aria.state.expanded?
+ & aria.prop.modal?
+ )
common.attrs.aria.implicit.document |=
( aria.state.expanded? )
@@ -73,6 +81,18 @@ common.attrs.aria.implicit.figure |=
common.attrs.aria.implicit.form |=
( aria.state.expanded? )
+common.attrs.aria.implicit.gridcell |=
+ ( aria.prop.level? # net inherited
+ & aria.prop.readonly? # not inherited
+ & aria.state.selected? # not inherited
+ & aria.state.expanded?
+ & aria.prop.required?
+ & aria.prop.colspan?
+ & aria.prop.colindex?
+ & aria.prop.rowspan?
+ & aria.prop.rowindex?
+ )
+
common.attrs.aria.implicit.group |=
( aria.state.expanded?
& aria.prop.activedescendant?
@@ -93,7 +113,6 @@ common.attrs.aria.implicit.listbox |=
( aria.prop.multiselectable?
& aria.prop.required?
& aria.prop.activedescendant?
- & aria.state.expanded?
)
common.attrs.aria.implicit.listitem |=
@@ -122,6 +141,7 @@ common.attrs.aria.implicit.progressbar |=
common.attrs.aria.implicit.radio |=
( aria.prop.posinset?
+ & aria.prop.required?
& aria.prop.setsize?
& aria.state.checked?
& aria.state.selected?
@@ -143,6 +163,7 @@ common.attrs.aria.implicit.searchbox |=
( aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
+ & aria.prop.placeholder?
& aria.prop.readonly?
& aria.prop.required?
)
@@ -168,6 +189,7 @@ common.attrs.aria.implicit.spinbutton |=
& aria.prop.valuemin?
& aria.prop.valuenow?
& aria.prop.valuetext?
+ & aria.prop.placeholder?
& aria.prop.required?
)
@@ -183,6 +205,7 @@ common.attrs.aria.implicit.textbox |=
( aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
+ & aria.prop.placeholder?
& aria.prop.readonly?
& aria.prop.required?
)
@@ -355,6 +378,18 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
| string "none" #default
}
+## braillelabel
+ aria.prop.braillelabel =
+ attribute aria-braillelabel {
+ string
+ }
+
+## brailleroledescription
+ aria.prop.brailleroledescription =
+ attribute aria-brailleroledescription {
+ string
+ }
+
## colcount
aria.prop.colcount =
attribute aria-colcount {
@@ -650,6 +685,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.application =
( aria.role.application
& aria.state.expanded?
+ & aria.prop.activedescendant? # ARIA 1.1 and 1.2
)
aria.role.application =
attribute role { string "application" }
@@ -661,6 +697,8 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.article =
( aria.role.article
& aria.state.expanded?
+ & aria.prop.posinset? # ARIA 1.1 and 1.2
+ & aria.prop.setsize? # ARIA 1.1 and 1.2
)
aria.role.article =
attribute role { string "article" }
@@ -679,6 +717,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.banner
common.attrs.aria.landmark.banner |= aria.banner
+## blockquote - added in ARIA 1.2
+ aria.blockquote =
+ ( aria.role.blockquote
+ )
+ aria.role.blockquote =
+ attribute role { string "blockquote" }
+
+ common.attrs.aria |= aria.blockquote
+ common.attrs.aria.role.blockquote |= aria.blockquote
+
## button
aria.button =
( aria.role.button
@@ -691,6 +739,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.button
common.attrs.aria.role.button |= aria.button
+## caption - added in ARIA 1.2
+ aria.caption =
+ ( aria.role.caption
+ )
+ aria.role.caption =
+ attribute role { string "caption" }
+
+ common.attrs.aria |= aria.caption
+ common.attrs.aria.role.caption |= aria.caption
+
## cell
aria.cell =
( aria.role.cell
@@ -708,6 +766,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.checkbox =
( aria.role.checkbox
& aria.state.checked #required!
+ & aria.state.expanded? # ARIA 1.2 added
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
+ & aria.prop.required? # ARIA 1.2 added
)
aria.role.checkbox =
attribute role { string "checkbox" }
@@ -715,6 +776,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.checkbox
common.attrs.aria.role.checkbox |= aria.checkbox
+## code - added in ARIA 1.2
+ aria.code =
+ ( aria.role.code
+ )
+ aria.role.code =
+ attribute role { string "code" }
+
+ common.attrs.aria |= aria.code
+ common.attrs.aria.role.code |= aria.code
+
# columnheader
aria.columnheader =
( aria.role.columnheader
@@ -725,12 +796,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.required?
& aria.prop.colspan?
& aria.prop.rowspan?
+ & aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
aria.role.columnheader =
attribute role { string "columnheader" }
common.attrs.aria |= aria.columnheader
+ common.attrs.aria.role.columnheader |= aria.columnheader
## combobox
aria.combobox =
@@ -782,6 +855,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.definition
common.attrs.aria.role.definition |= aria.definition
+## deletion - added in ARIA 1.2
+ aria.deletion =
+ ( aria.role.deletion
+ )
+ aria.role.deletion =
+ attribute role { string "deletion" }
+
+ common.attrs.aria |= aria.deletion
+ common.attrs.aria.role.deletion |= aria.deletion
+
## dialog
aria.dialog =
( aria.role.dialog
@@ -794,17 +877,6 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
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
@@ -816,6 +888,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.document
common.attrs.aria.landmark.document |= aria.document
+## emphasis - added in ARIA 1.2
+ aria.emphasis =
+ ( aria.role.emphasis
+ )
+ aria.role.emphasis =
+ attribute role { string "emphasis" }
+
+ common.attrs.aria |= aria.emphasis
+ common.attrs.aria.role.emphasis |= aria.emphasis
+
## feed
aria.feed =
( aria.role.feed
@@ -864,6 +946,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "grid" }
common.attrs.aria |= aria.grid
+ common.attrs.aria.role.grid |= aria.grid
## gridcell
aria.gridcell =
@@ -882,6 +965,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "gridcell" }
common.attrs.aria |= aria.gridcell
+ common.attrs.aria.role.gridcell |= aria.gridcell
## group
aria.group =
@@ -922,7 +1006,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## heading
aria.heading =
( aria.role.heading
- & aria.prop.level ? # not inherited
+ & aria.prop.level # ARIA 1.1 and 1.2 required
& aria.state.expanded?
)
aria.role.heading =
@@ -942,6 +1026,27 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.img
common.attrs.aria.role.img |= aria.img
+## image
+ aria.image =
+ ( aria.role.image
+ & aria.state.expanded?
+ )
+ aria.role.image =
+ attribute role { string "image" }
+
+ common.attrs.aria |= aria.image
+ common.attrs.aria.role.image |= aria.image
+
+## insertion - added in ARIA 1.2
+ aria.insertion =
+ ( aria.role.insertion
+ )
+ aria.role.insertion =
+ attribute role { string "insertion" }
+
+ common.attrs.aria |= aria.insertion
+ common.attrs.aria.role.insertion |= aria.insertion
+
## link
aria.link =
( aria.role.link
@@ -970,7 +1075,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.multiselectable? # not inherited
& aria.prop.required?
& aria.prop.activedescendant?
- & aria.state.expanded?
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.orientation?
)
aria.role.listbox =
@@ -1081,6 +1186,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.menuitemcheckbox =
( aria.role.menuitemcheckbox
& aria.state.checked #required
+ & aria.state.expanded? # ARIA 1.2 added
+ & aria.prop.posinset? # ARIA 1.1 and 1.2
+ & aria.prop.setsize? # ARIA 1.1 and 1.2
)
aria.role.menuitemcheckbox =
attribute role { string "menuitemcheckbox" }
@@ -1099,6 +1207,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
aria.menuitemradio =
( aria.role.menuitemradio
& aria.state.checked #required
+ & aria.state.expanded? # ARIA 1.2 added
& aria.state.selected?
& aria.prop.posinset?
& aria.prop.setsize?
@@ -1120,6 +1229,20 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "menuitemradio" }
common.attrs.aria.role.menuitemradio-checked-not-required |= aria.menuitemradio-checked-not-required
+## meter - added in ARIA 1.2
+ aria.meter =
+ ( aria.role.meter
+ & aria.prop.valuemax? # optional
+ & aria.prop.valuemin? # optional
+ & aria.prop.valuetext? # inherited
+ & aria.prop.valuenow # required
+ )
+ aria.role.meter =
+ attribute role { string "meter" }
+
+ common.attrs.aria |= aria.meter
+ common.attrs.aria.role.meter |= aria.meter
+
## navigation
aria.navigation =
( aria.role.navigation
@@ -1164,6 +1287,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.option
common.attrs.aria.role.option |= aria.option
+## paragraph - added in ARIA 1.2
+ aria.paragraph =
+ ( aria.role.paragraph
+ )
+ aria.role.paragraph =
+ attribute role { string "paragraph" }
+
+ common.attrs.aria |= aria.paragraph
+ common.attrs.aria.role.paragraph |= aria.paragraph
+
## presentation
aria.presentation =
( aria.role.presentation )
@@ -1207,6 +1340,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
( aria.role.radiogroup
& aria.prop.activedescendant?
& aria.state.expanded?
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required?
& aria.prop.orientation?
)
@@ -1236,11 +1370,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.state.expanded?
& aria.prop.colindex?
& aria.prop.rowindex?
+ & aria.prop.posinset? # ARIA 1.2 added
+ & aria.prop.setsize? # ARIA 1.2 added
)
aria.role.row =
attribute role { string "row" }
common.attrs.aria |= aria.row
+ common.attrs.aria.role.row |= aria.row
## rowgroup
aria.rowgroup =
@@ -1264,12 +1401,14 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.required?
& aria.prop.colspan?
& aria.prop.rowspan?
+ & aria.prop.colindex? # ARIA 1.1 and 1.2
& aria.prop.rowindex?
)
aria.role.rowheader =
attribute role { string "rowheader" }
common.attrs.aria |= aria.rowheader
+ common.attrs.aria.role.rowheader |= aria.rowheader
## searchbox
aria.searchbox =
@@ -1277,6 +1416,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.activedescendant?
& aria.prop.autocomplete?
& aria.prop.multiline?
+ & aria.prop.placeholder? # ARIA 1.1 and 1.2
& aria.prop.readonly?
& aria.prop.required?
)
@@ -1288,9 +1428,9 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## scrollbar
aria.scrollbar =
( aria.role.scrollbar
- & aria.prop.orientation
- & aria.prop.valuemax
- & aria.prop.valuemin
+ & aria.prop.orientation? # ARIA 1.2 optional
+ & aria.prop.valuemax? # ARIA 1.2 optional
+ & aria.prop.valuemin? # ARIA 1.2 optional
& aria.prop.valuenow
& aria.prop.valuetext?
)
@@ -1317,6 +1457,10 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
( aria.role.separator
& aria.state.expanded?
& aria.prop.orientation?
+ & aria.prop.valuenow? # ARIA 1.2 (required if focusable, absent otherwise)
+ & aria.prop.valuemin? # ARIA 1.2 (optional if focusable, absent otherwise)
+ & aria.prop.valuemax? # ARIA 1.2 (optional if focusable, absent otherwise)
+ & aria.prop.valuetext? # ARIA 1.2 (optional if focusable, absent otherwise)
)
aria.role.separator =
attribute role { string "separator" }
@@ -1327,10 +1471,11 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## slider
aria.slider =
( aria.role.slider
- & aria.prop.valuemax
- & aria.prop.valuemin
+ & aria.prop.valuemax? # optional in ARIA 1.2
+ & aria.prop.valuemin? # optional in ARIA 1.2
& aria.prop.valuenow
& aria.prop.valuetext?
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.orientation?
)
aria.role.slider =
@@ -1342,10 +1487,12 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
## spinbutton
aria.spinbutton =
( aria.role.spinbutton
- & aria.prop.valuemax
- & aria.prop.valuemin
- & aria.prop.valuenow
+ & aria.prop.valuemax? # optional in ARIA 1.2
+ & aria.prop.valuemin? # optional in ARIA 1.2
+ & aria.prop.valuenow? # optional in ARIA 1.2
& aria.prop.valuetext?
+ & aria.prop.activedescendant? # ARIA 1.1 and 1.2
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
& aria.prop.required?
)
aria.role.spinbutton =
@@ -1365,10 +1512,43 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.status
common.attrs.aria.role.status |= aria.status
+## strong - added in ARIA 1.2
+ aria.strong =
+ ( aria.role.strong
+ )
+ aria.role.strong =
+ attribute role { string "strong" }
+
+ common.attrs.aria |= aria.strong
+ common.attrs.aria.role.strong |= aria.strong
+
+## subscript - added in ARIA 1.2
+ aria.subscript =
+ ( aria.role.subscript
+ )
+ aria.role.subscript =
+ attribute role { string "subscript" }
+
+ common.attrs.aria |= aria.subscript
+ common.attrs.aria.role.subscript |= aria.subscript
+
+## superscript - added in ARIA 1.2
+ aria.superscript =
+ ( aria.role.superscript
+ )
+ aria.role.superscript =
+ attribute role { string "superscript" }
+
+ common.attrs.aria |= aria.superscript
+ common.attrs.aria.role.superscript |= aria.superscript
+
## switch
aria.switch =
( aria.role.switch
& aria.state.checked #required!
+ & aria.state.expanded? # ARIA 1.2 added
+ & aria.prop.readonly? # ARIA 1.1 and 1.2
+ & aria.prop.required? # ARIA 1.2 added
)
aria.role.switch =
attribute role { string "switch" }
@@ -1449,6 +1629,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
& aria.prop.activedescendant?
& aria.prop.autocomplete? # not inherited
& aria.prop.multiline? # not inherited
+ & aria.prop.placeholder? # ARIA 1.1 and 1.2
& aria.prop.readonly? # not inherited
& aria.prop.required?
)
@@ -1458,6 +1639,16 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
common.attrs.aria |= aria.textbox
common.attrs.aria.role.textbox |= aria.textbox
+## time - added in ARIA 1.2
+ aria.time =
+ ( aria.role.time
+ )
+ aria.role.time =
+ attribute role { string "time" }
+
+ common.attrs.aria |= aria.time
+ common.attrs.aria.role.time |= aria.time
+
## timer
aria.timer =
( aria.role.timer
@@ -1467,6 +1658,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "timer" }
common.attrs.aria |= aria.timer
+ common.attrs.aria.role.timer |= aria.timer
## toolbar
aria.toolbar =
@@ -1490,6 +1682,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "tooltip" }
common.attrs.aria |= aria.tooltip
+ common.attrs.aria.role.tooltip |= aria.tooltip
## tree
aria.tree =
@@ -1523,6 +1716,7 @@ common.attrs.aria.implicit.search |= common.attrs.aria.implicit.landmark
attribute role { string "treegrid" }
common.attrs.aria |= aria.treegrid
+ common.attrs.aria.role.treegrid |= aria.treegrid
## treeitem
aria.treeitem =
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/block.rnc b/xml/relaxng/resources/resources/html5-schema/html5/block.rnc
index ee0cd1386027..75b9ab7e9307 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/block.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/block.rnc
@@ -62,8 +62,7 @@ datatypes w = "http://whattf.org/datatype-draft"
element ul { ul.inner & ul.attrs }
ul.attrs =
( common.attrs
- & ( ( common.attrs.aria.role.directory
- | common.attrs.aria.role.group
+ & ( ( common.attrs.aria.role.group
| common.attrs.aria.role.list
| common.attrs.aria.role.listbox
| common.attrs.aria.role.menu
@@ -91,16 +90,7 @@ datatypes w = "http://whattf.org/datatype-draft"
li.attrs =
( common.attrs
& ( common.attrs.aria.implicit.listitem
- | common.attrs.aria.role.listitem
- | common.attrs.aria.role.menuitem
- | common.attrs.aria.role.menuitemcheckbox
- | common.attrs.aria.role.menuitemradio
- | common.attrs.aria.role.option
- | common.attrs.aria.role.radio
- | common.attrs.aria.role.tab
- | common.attrs.aria.role.treeitem
- | common.attrs.aria.role.separator
- | common.attrs.aria.role.presentation
+ | common.attrs.aria?
)?
)
li.inner =
@@ -115,8 +105,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& ol.attrs.start?
& ol.attrs.reversed?
& ol.attrs.type?
- & ( ( common.attrs.aria.role.directory
- | common.attrs.aria.role.group
+ & ( ( common.attrs.aria.role.group
| common.attrs.aria.role.list
| common.attrs.aria.role.listbox
| common.attrs.aria.role.menu
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/common.rnc b/xml/relaxng/resources/resources/html5-schema/html5/common.rnc
index 7da841331bd9..8692180e7879 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/common.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/common.rnc
@@ -105,6 +105,7 @@ common.attrs =
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
+ & aria.global?
)
common.attrs.basic =
@@ -494,7 +495,6 @@ common.attrs.aria.role.checkbox = ( notAllowed )
common.attrs.aria.role.combobox = ( notAllowed )
common.attrs.aria.role.complementary = ( notAllowed )
common.attrs.aria.role.dialog = ( notAllowed )
-common.attrs.aria.role.directory = ( notAllowed )
common.attrs.aria.role.document = ( notAllowed )
common.attrs.aria.role.feed |= ( notAllowed )
common.attrs.aria.role.figure |= ( notAllowed )
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/core-scripting.rnc b/xml/relaxng/resources/resources/html5-schema/html5/core-scripting.rnc
index b466f13ab6f5..d7c2ca7c2733 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/core-scripting.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/core-scripting.rnc
@@ -29,7 +29,6 @@ datatypes w = "http://whattf.org/datatype-draft"
& script.attrs.async?
& script.attrs.type?
& script.attrs.nomodule?
- & script.attrs.charset?
& script.attrs.language? # restricted in Schematron
& script.attrs.integrity?
& embedded.content.attrs.crossorigin?
@@ -51,16 +50,17 @@ datatypes w = "http://whattf.org/datatype-draft"
} & v5only
script.attrs.type =
attribute type {
- w:string "module" | w:string "importmap" | w:string "" | common.data.scripttype # XXX without charset parameter!
+ ( w:string ""
+ | w:string "module"
+ | w:string "importmap"
+ | w:string "speculationrules"
+ | common.data.scripttype
+ )
}
script.attrs.nomodule =
attribute nomodule {
w:string "nomodule" | w:string ""
}
- script.attrs.charset =
- attribute charset {
- string
- }
script.attrs.language =
attribute language {
string
@@ -118,6 +118,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& scripting.attr.onauxclick?
& scripting.attr.onbeforeinput?
& scripting.attr.onbeforematch?
+ & scripting.attr.onbeforetoggle?
& scripting.attr.onblur?
& scripting.attr.oncancel?
& scripting.attr.oncanplay?
@@ -125,6 +126,7 @@ datatypes w = "http://whattf.org/datatype-draft"
& scripting.attr.onchange?
& scripting.attr.onclick?
& scripting.attr.onclose?
+ & scripting.attr.oncommand?
& scripting.attr.oncontextlost?
& scripting.attr.oncontextmenu?
& scripting.attr.oncontextrestored?
@@ -202,6 +204,8 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute onbeforeinput { common.data.functionbody }
scripting.attr.onbeforematch =
attribute onbeforematch { common.data.functionbody }
+ scripting.attr.onbeforetoggle =
+ attribute onbeforetoggle { common.data.functionbody }
scripting.attr.onblur =
attribute onblur { common.data.functionbody }
scripting.attr.oncancel =
@@ -216,6 +220,8 @@ datatypes w = "http://whattf.org/datatype-draft"
attribute onclick { common.data.functionbody }
scripting.attr.onclose =
attribute onclose { common.data.functionbody }
+ scripting.attr.oncommand =
+ attribute oncommand { common.data.functionbody }
scripting.attr.oncontextlost =
attribute oncontextlost { common.data.functionbody }
scripting.attr.oncontextmenu =
@@ -389,6 +395,23 @@ datatypes w = "http://whattf.org/datatype-draft"
scripting.attr.onlostpointercapture =
attribute onlostpointercapture { common.data.functionbody }
+## Touch Events
+ common.attrs.scripting &=
+ ( scripting.attr.ontouchstart?
+ & scripting.attr.ontouchend?
+ & scripting.attr.ontouchmove?
+ & scripting.attr.ontouchcancel?
+ )
+
+ scripting.attr.ontouchstart =
+ attribute ontouchstart { common.data.functionbody }
+ scripting.attr.ontouchend =
+ attribute ontouchend { common.data.functionbody }
+ scripting.attr.ontouchmove =
+ attribute ontouchmove { common.data.functionbody }
+ scripting.attr.ontouchcancel =
+ attribute ontouchcancel { common.data.functionbody }
+
# scripting.attr.common =
# ( scripting.attr.mouse
# & scripting.attr.keyboard
diff --git a/xml/relaxng/resources/resources/html5-schema/html5/embed.rnc b/xml/relaxng/resources/resources/html5-schema/html5/embed.rnc
index 1b92d5fc4db8..d79dcbac433e 100644
--- a/xml/relaxng/resources/resources/html5-schema/html5/embed.rnc
+++ b/xml/relaxng/resources/resources/html5-schema/html5/embed.rnc
@@ -12,8 +12,11 @@ namespace local = ""
shared-img.attrs =
( common.attrs
- & img.attrs.src
- & img.attrs.srcset?
+ & (
+ ( img.attrs.src & img.attrs.srcset? )
+ |
+ ( img.attrs.srcset & img.attrs.src? )
+ )
& img.attrs.sizes?
& img.attrs.generator-unable-to-provide-required-alt?
& img.attrs.height?
@@ -23,7 +26,6 @@ namespace local = ""
& img.attrs.decoding?
& img.attrs.loading?
& common.attrs.fetchpriority?
- & img.attrs.border? # obsolete
& referrerpolicy?
& embedded.content.attrs.crossorigin?
)
@@ -104,10 +106,6 @@ namespace local = ""
attribute loading {
w:string "lazy" | w:string "eager"
}
- img.attrs.border =
- attribute border {
- common.data.zero
- }
img.inner =
empty
@@ -231,6 +229,7 @@ namespace local = ""
| onauxclick
| onbeforeinput
| onbeforematch
+ | onbeforetoggle
| onblur
| oncancel
| oncanplay
@@ -238,6 +237,7 @@ namespace local = ""
| onchange
| onclick
| onclose
+ | oncommand
| oncontextlost
| oncontextmenu
| oncontextrestored
@@ -314,8 +314,15 @@ namespace local = ""
| onpointerleave
| ongotpointercapture
| onlostpointercapture
+ | ontouchstart
+ | ontouchend
+ | ontouchmove
+ | ontouchcancel
| role
+ | aria-activedescendant
| aria-atomic
+ | aria-braillelabel
+ | aria-brailleroledescription
| aria-busy
| aria-controls
| aria-current
@@ -340,6 +347,8 @@ namespace local = ""
| aria-required
| aria-roledescription
| spellcheck
+ | autocorrect
+ | writingsuggestions
| autocapitalize
| enterkeyhint
| accesskey
@@ -365,6 +374,11 @@ namespace local = ""
| rev
| inlist
| its-loc-note
+ | contextmenu
+ | dropzone
+ | onshow
+ | headingoffset
+ | headingreset
| its-loc-note-type
| its-loc-note-ref
| its-term-info-ref
@@ -427,17 +441,13 @@ namespace local = ""
element object { object.inner.phrasing & object.attrs }
object.attrs =
( common.attrs
- & ( ( object.attrs.data
- & object.attrs.type?
- )
- | object.attrs.type
- )
+ & object.attrs.data
+ & object.attrs.type?
# & object.attrs.classid?
# & object.attrs.codebase?
# & object.attrs.codetype?
& object.attrs.height?
& object.attrs.width?
- & object.attrs.usemap?
& object.attrs.name?
& common-form.attrs.form?
& ( common.attrs.aria.role.application
@@ -461,46 +471,18 @@ namespace local = ""
attribute width {
common.data.integer.non-negative
}
- object.attrs.usemap =
- attribute usemap {
- common.data.hash-name
- }
object.attrs.name =
attribute name {
common.data.browsing-context
}
object.inner.flow =
- ( param.elem*
- , common.inner.transparent.flow
- )
+ ( common.inner.transparent.flow )
object.inner.phrasing =
- ( param.elem*
- , common.inner.phrasing
- )
+ ( common.inner.phrasing )
common.elem.flow |= object.elem.flow
common.elem.phrasing |= object.elem.phrasing
-## Initialization Parameters:
-
- param.elem =
- element param { param.inner & param.attrs }
- param.attrs =
- ( common.attrs
- & param.attrs.name
- & param.attrs.value
- )
- param.attrs.name =
- attribute name {
- string
- }
- param.attrs.value =
- attribute value {
- string
- }
- param.inner =
- ( empty )
-
## Inline Frame: