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: