From 0eedc0a8afa9bcafdd447a048cfa317725d6be90 Mon Sep 17 00:00:00 2001 From: Dennis Ushakov Date: Wed, 22 Mar 2017 16:38:08 +0300 Subject: [PATCH] update html5 schema --- .../html5-schema/html5-svg-mathml.rnc | 19 +- .../html5-schema/html5/applications.rnc | 20 +- .../src/resources/html5-schema/html5/aria.rnc | 462 +++++++++++++++++- .../resources/html5-schema/html5/block.rnc | 35 +- .../resources/html5-schema/html5/common.rnc | 63 ++- .../html5-schema/html5/core-scripting.rnc | 2 +- .../resources/html5-schema/html5/embed.rnc | 45 +- .../html5-schema/html5/html5core.rnc | 6 +- .../html5/html5full-no-microdata.rnc | 22 +- .../html5-schema/html5/html5full-rdfa.rnc | 22 +- .../html5-schema/html5/html5full-rdfalite.rnc | 24 +- .../html5-schema/html5/html5full.rnc | 22 +- .../resources/html5-schema/html5/legacy.rnc | 10 + .../resources/html5-schema/html5/media.rnc | 15 +- .../src/resources/html5-schema/html5/meta.rnc | 16 +- .../resources/html5-schema/html5/phrase.rnc | 15 + .../src/resources/html5-schema/html5/ruby.rnc | 2 +- .../html5-schema/html5/structural.rnc | 6 + .../resources/html5-schema/html5/tables.rnc | 38 +- .../html5-schema/html5/web-components.rnc | 10 +- .../html5-schema/html5/web-forms.rnc | 12 +- .../html5-schema/html5/web-forms2.rnc | 102 ++-- .../html5/xhtml5core-plus-web-forms2.rnc | 6 +- .../html5-schema/html5/xhtml5core.rnc | 6 +- .../html5/xhtml5full-html-no-microdata.rnc | 22 +- .../html5/xhtml5full-html-rdfalite.rnc | 24 +- .../html5-schema/html5/xhtml5full-html.rnc | 22 +- .../html5/xhtml5full-xhtml-no-microdata.rnc | 18 +- .../html5/xhtml5full-xhtml-rdfa.rnc | 18 +- .../html5/xhtml5full-xhtml-rdfalite.rnc | 20 +- .../html5-schema/html5/xhtml5full-xhtml.rnc | 18 +- .../src/resources/html5-schema/html5chars.ent | 2 +- .../html5-schema/svg11/svg-basic-font.rnc | 1 + .../svg11/svg-basic-structure.rnc | 6 +- .../html5-schema/svg11/svg-basic-text.rnc | 3 + .../html5-schema/svg11/svg-extensibility.rnc | 1 + .../html5-schema/svg11/svg-hyperlink.rnc | 1 + .../html5-schema/svg11/svg-image.rnc | 1 + .../html5-schema/svg11/svg-shape.rnc | 7 + .../html5-schema/svg11/svg-structure.rnc | 1 + .../html5-schema/svg11/svg-style.rnc | 2 +- .../resources/html5-schema/svg11/svg-text.rnc | 1 + .../xhtml1-ruby-rdf-svg-mathml.rnc | 9 + 43 files changed, 885 insertions(+), 272 deletions(-) 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 a9e8894e94a9..9bed6bbf35ec 100644 --- a/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5-svg-mathml.rnc @@ -13,7 +13,6 @@ SVG.foreignObject.content |= | common.inner.flow ) -SVG.Core.attrib &= common.attrs.aria? SVG.Core.attrib &= aria.global? annotation-xml.model.svg |= svg @@ -32,3 +31,21 @@ SVG.metadata.content |= common.inner.flow # cannot; see http://www.w3.org/Bugs/Public/show_bug.cgi?id=9859#c8 for a # rationale mtext.content |= common.elem.phrasing + +SVG.vector-effect.attrib = + attribute vector-effect { + string "none" | string "non-scaling-stroke" + } + +attlist.circle &= SVG.vector-effect.attrib? +attlist.ellipse &= SVG.vector-effect.attrib? +attlist.foreignObject &= SVG.vector-effect.attrib? +attlist.image &= SVG.vector-effect.attrib? +attlist.line &= SVG.vector-effect.attrib? +attlist.path &= SVG.vector-effect.attrib? +attlist.polygon &= SVG.vector-effect.attrib? +attlist.polyline &= SVG.vector-effect.attrib? +attlist.rect &= SVG.vector-effect.attrib? +attlist.text &= SVG.vector-effect.attrib? +attlist.tspan &= SVG.vector-effect.attrib? +attlist.use &= SVG.vector-effect.attrib? diff --git a/xml/relaxng/src/resources/html5-schema/html5/applications.rnc b/xml/relaxng/src/resources/html5-schema/html5/applications.rnc index 618814d33166..a87623e05fdd 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/applications.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/applications.rnc @@ -184,31 +184,31 @@ datatypes w = "http://whattf.org/datatype-draft" mli.inner = ( common.inner.flow ) -## Popup menu: +## Popup menu: - menu.popup.elem = - element menu { menu.popup.inner & menu.popup.attrs } - menu.popup.attrs = + menu.context.elem = + element menu { menu.context.inner & menu.context.attrs } + menu.context.attrs = ( common.attrs - & menu.popup.attrs.type? + & menu.context.attrs.type? & menu.attrs.label? & common.attrs.aria? ) - menu.popup.attrs.type = + menu.context.attrs.type = attribute type { - w:string "popup" + w:string "context" } menu.attrs.label = attribute label { string } - menu.popup.inner = + menu.context.inner = ( menuitem.elem* & hr.elem* - & menu.popup.elem* + & menu.context.elem* & common.elem.script-supporting* ) - menu.elem |= menu.popup.elem + menu.elem |= menu.context.elem ## Ambiguous menu: (with no "type" attribute) menu.ambiguous.elem = diff --git a/xml/relaxng/src/resources/html5-schema/html5/aria.rnc b/xml/relaxng/src/resources/html5-schema/html5/aria.rnc index 61e007bacb82..b70ccf9dda75 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/aria.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/aria.rnc @@ -13,19 +13,24 @@ aria.global = ( aria.prop.atomic? & aria.state.busy? & aria.prop.controls? + & aria.state.current? & aria.prop.describedby? + & aria.prop.details? & aria.state.disabled? & aria.state.dropeffect? + & aria.prop.errormessage? & aria.prop.flowto? & aria.state.grabbed? & aria.prop.haspopup? & aria.state.hidden? & aria.state.invalid? + & aria.prop.keyshortcuts? & aria.prop.label? & aria.prop.labelledby? & aria.prop.live? & aria.prop.owns? & aria.prop.relevant? + & aria.prop.roledescription? ) common.attrs.other &= aria.global? @@ -37,6 +42,12 @@ common.attrs.aria.implicit.button |= & aria.state.pressed? ) +common.attrs.aria.implicit.cell |= + ( aria.prop.colspan? + & aria.prop.rowspan? + & aria.prop.rowindex? + ) + common.attrs.aria.implicit.checkbox |= ( aria.state.checked? ) @@ -45,6 +56,7 @@ common.attrs.aria.implicit.combobox |= & aria.prop.autocomplete? & aria.prop.required? & aria.prop.activedescendant? + & aria.prop.readonly? ) common.attrs.aria.implicit.dialog |= @@ -53,6 +65,9 @@ common.attrs.aria.implicit.dialog |= common.attrs.aria.implicit.document |= ( aria.state.expanded? ) +common.attrs.aria.implicit.figure |= + ( aria.state.expanded? ) + common.attrs.aria.implicit.form |= ( aria.state.expanded? ) @@ -107,6 +122,27 @@ common.attrs.aria.implicit.radio |= & aria.state.selected? ) +common.attrs.aria.implicit.row |= + ( aria.prop.level? # not inherited + & aria.state.selected? # not inherited + & aria.prop.activedescendant? + & aria.state.expanded? + ) + +common.attrs.aria.implicit.rowgroup |= + ( aria.prop.activedescendant? + & aria.state.expanded? + ) + +common.attrs.aria.implicit.searchbox |= + ( aria.prop.activedescendant? + & aria.prop.autocomplete? + & aria.prop.multiline? + & aria.prop.placeholder? + & aria.prop.readonly? + & aria.prop.required? + ) + common.attrs.aria.implicit.slider |= ( aria.prop.valuemax? & aria.prop.valuemin? @@ -123,6 +159,11 @@ common.attrs.aria.implicit.spinbutton |= & aria.prop.required? ) +common.attrs.aria.implicit.table |= + ( aria.prop.colcount? + & aria.prop.rowcount? + ) + common.attrs.aria.implicit.textbox |= ( aria.prop.activedescendant? & aria.prop.autocomplete? @@ -198,6 +239,18 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark | string "false" #default } +## current + aria.state.current = + attribute aria-current + { string "page" + | string "step" + | string "location" + | string "date" + | string "time" + | string "true" + | string "false" #default + } + ## checked aria.state.checked = attribute aria-checked @@ -322,6 +375,24 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark | string "none" #default } +## colcount + aria.prop.colcount = + attribute aria-colcount { + common.data.integer.positive + } + +## colindex + aria.prop.colindex = + attribute aria-colindex { + common.data.integer.positive + } + +## colspan + aria.prop.colspan = + attribute aria-colspan { + common.data.integer.positive + } + ## controls aria.prop.controls = attribute aria-controls { @@ -334,6 +405,18 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.data.idrefs #REVISIT add Schematron check } +## details + aria.prop.details = + attribute aria-details { + common.data.idref + } + +## errormessage + aria.prop.errormessage = + attribute aria-errormessage { + common.data.idref + } + ## flowto aria.prop.flowto = attribute aria-flowto { @@ -347,6 +430,12 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark | string "false" #default } +## keyshortcuts + aria.prop.keyshortcuts = + attribute aria-keyshortcuts { + string + } + ## label aria.prop.label = attribute aria-label { @@ -373,6 +462,13 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark | string "assertive" } +## modal + aria.prop.modal = + attribute aria-modal + { string "true" + | string "false" #default + } + ## multiline aria.prop.multiline = attribute aria-multiline @@ -392,6 +488,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark attribute aria-orientation { string "vertical" | string "horizontal" #default + | string "undefined" } ## owns @@ -400,6 +497,12 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.data.idrefs #REVISIT add Schematron check } +## placeholder + aria.prop.placeholder = + attribute aria-placeholder { + string + } + ## posinset aria.prop.posinset = attribute aria-posinset { @@ -457,6 +560,30 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark | string "false" #default } +## roledescription + aria.prop.roledescription = + attribute aria-roledescription { + string + } + +## rowcount + aria.prop.rowcount = + attribute aria-rowcount { + common.data.integer.positive + } + +## rowindex + aria.prop.rowindex = + attribute aria-rowindex { + common.data.integer.positive + } + +## rowspan + aria.prop.rowspan = + attribute aria-rowspan { + common.data.integer.positive + } + ## setsize aria.prop.setsize = attribute aria-setsize { @@ -514,6 +641,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark aria.alertdialog = ( aria.role.alertdialog & aria.state.expanded? + & aria.prop.modal? ) aria.role.alertdialog = attribute role { string "alertdialog" } @@ -566,6 +694,18 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.button common.attrs.aria.role.button |= aria.button +## cell + aria.cell = + ( aria.role.cell + & aria.prop.colspan? + & aria.prop.rowspan? + & aria.prop.rowindex? + ) + aria.role.cell = + attribute role { string "cell" } + common.attrs.aria |= aria.cell + common.attrs.aria.role.cell |= aria.cell + ## checkbox aria.checkbox = ( aria.role.checkbox @@ -585,6 +725,9 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.state.selected? # not inherited & aria.state.expanded? & aria.prop.required? + & aria.prop.colspan? + & aria.prop.rowspan? + & aria.prop.rowindex? ) aria.role.columnheader = attribute role { string "columnheader" } @@ -593,11 +736,14 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark ## combobox aria.combobox = + # aria.prop.controls TODO: required! add check to Assertions ( aria.role.combobox & aria.prop.activedescendant? & aria.state.expanded #required! & aria.prop.autocomplete? & aria.prop.required? + & aria.prop.readonly? + & aria.prop.orientation? ) aria.role.combobox = attribute role { string "combobox" } @@ -641,6 +787,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark aria.dialog = ( aria.role.dialog & aria.state.expanded? + & aria.prop.modal? ) aria.role.dialog = attribute role { string "dialog" } @@ -670,6 +817,28 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.document common.attrs.aria.landmark.document |= aria.document +## feed + aria.feed = + ( aria.role.feed + & aria.state.expanded? + ) + aria.role.feed = + attribute role { string "feed" } + + common.attrs.aria |= aria.feed + common.attrs.aria.role.feed |= aria.feed + +## figure + aria.figure = + ( aria.role.figure + & aria.state.expanded? + ) + aria.role.figure = + attribute role { string "figure" } + + common.attrs.aria |= aria.figure + common.attrs.aria.role.figure |= aria.figure + ## form aria.form = ( aria.role.form @@ -689,6 +858,8 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.prop.readonly? # not inherited & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.colcount? + & aria.prop.rowcount? ) aria.role.grid = attribute role { string "grid" } @@ -703,6 +874,9 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.state.selected? # not inherited & aria.state.expanded? & aria.prop.required? + & aria.prop.colspan? + & aria.prop.rowspan? + & aria.prop.rowindex? ) aria.role.gridcell = attribute role { string "gridcell" } @@ -721,6 +895,30 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.group common.attrs.aria.role.group |= aria.group +## graphics-document + aria.graphics-document = + ( aria.role.graphics-document ) + aria.role.graphics-document = + attribute role { string "graphics-document" } + common.attrs.aria |= aria.graphics-document + common.attrs.aria.role.graphics-document |= aria.graphics-document + +## graphics-object + aria.graphics-object = + ( aria.role.graphics-object ) + aria.role.graphics-object = + attribute role { string "graphics-object" } + common.attrs.aria |= aria.graphics-object + common.attrs.aria.role.graphics-object |= aria.graphics-object + +## graphics-symbol + aria.graphics-symbol = + ( aria.role.graphics-symbol ) + aria.role.graphics-symbol = + attribute role { string "graphics-symbol" } + common.attrs.aria |= aria.graphics-symbol + common.attrs.aria.role.graphics-symbol |= aria.graphics-symbol + ## heading aria.heading = ( aria.role.heading @@ -773,6 +971,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.prop.required? & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.orientation? ) aria.role.listbox = attribute role { string "listbox" } @@ -842,6 +1041,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark ( aria.role.menu & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.orientation? ) aria.role.menu = attribute role { string "menu" } @@ -854,6 +1054,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark ( aria.role.menubar & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.orientation? ) aria.role.menubar = attribute role { string "menubar" } @@ -907,6 +1108,14 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.navigation common.attrs.aria.landmark.navigation |= aria.navigation +## none + aria.none = + ( aria.role.none ) + aria.role.none = + attribute role { string "none" } + common.attrs.aria |= aria.none + common.attrs.aria.role.none |= aria.none + ## note aria.note = ( aria.role.note @@ -932,12 +1141,9 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.option common.attrs.aria.role.option |= aria.option - ## presentation aria.presentation = - ( aria.role.presentation - & aria.state.expanded? - ) + ( aria.role.presentation ) aria.role.presentation = attribute role { string "presentation" } @@ -978,11 +1184,13 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.prop.activedescendant? & aria.state.expanded? & aria.prop.required? + & aria.prop.orientation? ) aria.role.radiogroup = attribute role { string "radiogroup" } common.attrs.aria |= aria.radiogroup + common.attrs.aria.role.radiogroup |= aria.radiogroup ## region aria.region = @@ -1002,6 +1210,8 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.state.selected? # not inherited & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.colindex? + & aria.prop.rowindex? ) aria.role.row = attribute role { string "row" } @@ -1018,6 +1228,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark attribute role { string "rowgroup" } common.attrs.aria |= aria.rowgroup + common.attrs.aria.role.rowgroup |= aria.rowgroup # rowheader aria.rowheader = @@ -1027,12 +1238,30 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.state.selected? # not inherited & aria.state.expanded? & aria.prop.required? + & aria.prop.colspan? + & aria.prop.rowspan? + & aria.prop.rowindex? ) aria.role.rowheader = attribute role { string "rowheader" } common.attrs.aria |= aria.rowheader +## searchbox + aria.searchbox = + ( aria.role.searchbox + & aria.prop.activedescendant? + & aria.prop.autocomplete? + & aria.prop.multiline? + & aria.prop.placeholder? + & aria.prop.readonly? + & aria.prop.required? + ) + aria.role.searchbox = + attribute role { string "searchbox" } + common.attrs.aria |= aria.searchbox + common.attrs.aria.role.searchbox |= aria.searchbox + ## scrollbar aria.scrollbar = ( aria.role.scrollbar @@ -1051,6 +1280,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark aria.search = ( aria.role.search & aria.state.expanded? + & aria.prop.orientation? ) aria.role.search = attribute role { string "search" } @@ -1134,6 +1364,17 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.tab common.attrs.aria.role.tab |= aria.tab +## table + aria.table = + ( aria.role.table + & aria.prop.colcount? + & aria.prop.rowcount? + ) + aria.role.table = + attribute role { string "table" } + common.attrs.aria |= aria.table + common.attrs.aria.role.table |= aria.table + ## tablist aria.tablist = ( aria.role.tablist @@ -1141,6 +1382,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.state.expanded? & aria.prop.level? & aria.prop.multiselectable? + & aria.prop.orientation? ) aria.role.tablist = attribute role { string "tablist" } @@ -1158,12 +1400,21 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.tabpanel common.attrs.aria.role.tabpanel |= aria.tabpanel +## term + aria.term = + ( aria.role.term ) + aria.role.term = + attribute role { string "term" } + common.attrs.aria |= aria.term + common.attrs.aria.role.term |= aria.term + ## textbox aria.textbox = ( aria.role.textbox & aria.prop.activedescendant? & aria.prop.autocomplete? # not inherited & aria.prop.multiline? # not inherited + & aria.prop.placeholder? & aria.prop.readonly? # not inherited & aria.prop.required? ) @@ -1188,6 +1439,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark ( aria.role.toolbar & aria.prop.activedescendant? & aria.state.expanded? + & aria.prop.orientation? ) aria.role.toolbar = attribute role { string "toolbar" } @@ -1212,6 +1464,7 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.prop.activedescendant? & aria.state.expanded? & aria.prop.required? + & aria.prop.orientation? ) aria.role.tree = attribute role { string "tree" } @@ -1228,6 +1481,9 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark & aria.prop.multiselectable? & aria.prop.readonly? & aria.prop.required? + & aria.prop.orientation? + & aria.prop.colcount? + & aria.prop.rowcount? ) aria.role.treegrid = attribute role { string "treegrid" } @@ -1249,3 +1505,201 @@ common.attrs.aria.implicit.navigation |= common.attrs.aria.implicit.landmark common.attrs.aria |= aria.treeitem common.attrs.aria.role.treeitem |= aria.treeitem + +# ##################################################################### +## https://w3c.github.io/aria/aria/dpub.html + + aria.doc-abstract = aria.role.doc-abstract + aria.role.doc-abstract = attribute role { string "doc-abstract" } + common.attrs.aria |= aria.doc-abstract + common.attrs.aria.role.doc-abstract |= aria.doc-abstract + + aria.doc-acknowledgments = aria.role.doc-acknowledgments + aria.role.doc-acknowledgments = attribute role { string "doc-acknowledgments" } + common.attrs.aria |= aria.doc-acknowledgments + common.attrs.aria.role.doc-acknowledgments |= aria.doc-acknowledgments + + aria.doc-afterword = aria.role.doc-afterword + aria.role.doc-afterword = attribute role { string "doc-afterword" } + common.attrs.aria |= aria.doc-afterword + common.attrs.aria.role.doc-afterword |= aria.doc-afterword + + aria.doc-appendix = aria.role.doc-appendix + aria.role.doc-appendix = attribute role { string "doc-appendix" } + common.attrs.aria |= aria.doc-appendix + common.attrs.aria.role.doc-appendix |= aria.doc-appendix + + aria.doc-backlink = aria.role.doc-backlink + aria.role.doc-backlink = attribute role { string "doc-backlink" } + common.attrs.aria |= aria.doc-backlink + common.attrs.aria.role.doc-backlink |= aria.doc-backlink + + aria.doc-biblioentry = aria.role.doc-biblioentry + aria.role.doc-biblioentry = attribute role { string "doc-biblioentry" } + common.attrs.aria |= aria.doc-biblioentry + common.attrs.aria.role.doc-biblioentry |= aria.doc-biblioentry + + aria.doc-bibliography = aria.role.doc-bibliography + aria.role.doc-bibliography = attribute role { string "doc-bibliography" } + common.attrs.aria |= aria.doc-bibliography + common.attrs.aria.role.doc-bibliography |= aria.doc-bibliography + + aria.doc-biblioref = aria.role.doc-biblioref + aria.role.doc-biblioref = attribute role { string "doc-biblioref" } + common.attrs.aria |= aria.doc-biblioref + common.attrs.aria.role.doc-biblioref |= aria.doc-biblioref + + aria.doc-chapter = aria.role.doc-chapter + aria.role.doc-chapter = attribute role { string "doc-chapter" } + common.attrs.aria |= aria.doc-chapter + common.attrs.aria.role.doc-chapter |= aria.doc-chapter + + aria.doc-colophon = aria.role.doc-colophon + aria.role.doc-colophon = attribute role { string "doc-colophon" } + common.attrs.aria |= aria.doc-colophon + common.attrs.aria.role.doc-colophon |= aria.doc-colophon + + aria.doc-conclusion = aria.role.doc-conclusion + aria.role.doc-conclusion = attribute role { string "doc-conclusion" } + common.attrs.aria |= aria.doc-conclusion + common.attrs.aria.role.doc-conclusion |= aria.doc-conclusion + + aria.doc-cover = aria.role.doc-cover + aria.role.doc-cover = attribute role { string "doc-cover" } + common.attrs.aria |= aria.doc-cover + common.attrs.aria.role.doc-cover |= aria.doc-cover + + aria.doc-credit = aria.role.doc-credit + aria.role.doc-credit = attribute role { string "doc-credit" } + common.attrs.aria |= aria.doc-credit + common.attrs.aria.role.doc-credit |= aria.doc-credit + + aria.doc-credits = aria.role.doc-credits + aria.role.doc-credits = attribute role { string "doc-credits" } + common.attrs.aria |= aria.doc-credits + common.attrs.aria.role.doc-credits |= aria.doc-credits + + aria.doc-dedication = aria.role.doc-dedication + aria.role.doc-dedication = attribute role { string "doc-dedication" } + common.attrs.aria |= aria.doc-dedication + common.attrs.aria.role.doc-dedication |= aria.doc-dedication + + aria.doc-endnote = aria.role.doc-endnote + aria.role.doc-endnote = attribute role { string "doc-endnote" } + common.attrs.aria |= aria.doc-endnote + common.attrs.aria.role.doc-endnote |= aria.doc-endnote + + aria.doc-endnotes = aria.role.doc-endnotes + aria.role.doc-endnotes = attribute role { string "doc-endnotes" } + common.attrs.aria |= aria.doc-endnotes + common.attrs.aria.role.doc-endnotes |= aria.doc-endnotes + + aria.doc-epigraph = aria.role.doc-epigraph + aria.role.doc-epigraph = attribute role { string "doc-epigraph" } + common.attrs.aria |= aria.doc-epigraph + common.attrs.aria.role.doc-epigraph |= aria.doc-epigraph + + aria.doc-epilogue = aria.role.doc-epilogue + aria.role.doc-epilogue = attribute role { string "doc-epilogue" } + common.attrs.aria |= aria.doc-epilogue + common.attrs.aria.role.doc-epilogue |= aria.doc-epilogue + + aria.doc-errata = aria.role.doc-errata + aria.role.doc-errata = attribute role { string "doc-errata" } + common.attrs.aria |= aria.doc-errata + common.attrs.aria.role.doc-errata |= aria.doc-errata + + aria.doc-example = aria.role.doc-example + aria.role.doc-example = attribute role { string "doc-example" } + common.attrs.aria |= aria.doc-example + common.attrs.aria.role.doc-example |= aria.doc-example + + aria.doc-footnote = aria.role.doc-footnote + aria.role.doc-footnote = attribute role { string "doc-footnote" } + common.attrs.aria |= aria.doc-footnote + common.attrs.aria.role.doc-footnote |= aria.doc-footnote + + aria.doc-foreword = aria.role.doc-foreword + aria.role.doc-foreword = attribute role { string "doc-foreword" } + common.attrs.aria |= aria.doc-foreword + common.attrs.aria.role.doc-foreword |= aria.doc-foreword + + aria.doc-glossary = aria.role.doc-glossary + aria.role.doc-glossary = attribute role { string "doc-glossary" } + common.attrs.aria |= aria.doc-glossary + common.attrs.aria.role.doc-glossary |= aria.doc-glossary + + aria.doc-glossref = aria.role.doc-glossref + aria.role.doc-glossref = attribute role { string "doc-glossref" } + common.attrs.aria |= aria.doc-glossref + common.attrs.aria.role.doc-glossref |= aria.doc-glossref + + aria.doc-index = aria.role.doc-index + aria.role.doc-index = attribute role { string "doc-index" } + common.attrs.aria |= aria.doc-index + common.attrs.aria.role.doc-index |= aria.doc-index + + aria.doc-introduction = aria.role.doc-introduction + aria.role.doc-introduction = attribute role { string "doc-introduction" } + common.attrs.aria |= aria.doc-introduction + common.attrs.aria.role.doc-introduction |= aria.doc-introduction + + aria.doc-noteref = aria.role.doc-noteref + aria.role.doc-noteref = attribute role { string "doc-noteref" } + common.attrs.aria |= aria.doc-noteref + common.attrs.aria.role.doc-noteref |= aria.doc-noteref + + aria.doc-notice = aria.role.doc-notice + aria.role.doc-notice = attribute role { string "doc-notice" } + common.attrs.aria |= aria.doc-notice + common.attrs.aria.role.doc-notice |= aria.doc-notice + + aria.doc-pagebreak = aria.role.doc-pagebreak + aria.role.doc-pagebreak = attribute role { string "doc-pagebreak" } + common.attrs.aria |= aria.doc-pagebreak + common.attrs.aria.role.doc-pagebreak |= aria.doc-pagebreak + + aria.doc-pagelist = aria.role.doc-pagelist + aria.role.doc-pagelist = attribute role { string "doc-pagelist" } + common.attrs.aria |= aria.doc-pagelist + common.attrs.aria.role.doc-pagelist |= aria.doc-pagelist + + aria.doc-part = aria.role.doc-part + aria.role.doc-part = attribute role { string "doc-part" } + common.attrs.aria |= aria.doc-part + common.attrs.aria.role.doc-part |= aria.doc-part + + aria.doc-preface = aria.role.doc-preface + aria.role.doc-preface = attribute role { string "doc-preface" } + common.attrs.aria |= aria.doc-preface + common.attrs.aria.role.doc-preface |= aria.doc-preface + + aria.doc-prologue = aria.role.doc-prologue + aria.role.doc-prologue = attribute role { string "doc-prologue" } + common.attrs.aria |= aria.doc-prologue + common.attrs.aria.role.doc-prologue |= aria.doc-prologue + + aria.doc-pullquote = aria.role.doc-pullquote + aria.role.doc-pullquote = attribute role { string "doc-pullquote" } + common.attrs.aria |= aria.doc-pullquote + common.attrs.aria.role.doc-pullquote |= aria.doc-pullquote + + aria.doc-qna = aria.role.doc-qna + aria.role.doc-qna = attribute role { string "doc-qna" } + common.attrs.aria |= aria.doc-qna + common.attrs.aria.role.doc-qna |= aria.doc-qna + + aria.doc-subtitle = aria.role.doc-subtitle + aria.role.doc-subtitle = attribute role { string "doc-subtitle" } + common.attrs.aria |= aria.doc-subtitle + common.attrs.aria.role.doc-subtitle |= aria.doc-subtitle + + aria.doc-tip = aria.role.doc-tip + aria.role.doc-tip = attribute role { string "doc-tip" } + common.attrs.aria |= aria.doc-tip + common.attrs.aria.role.doc-tip |= aria.doc-tip + + aria.doc-toc = aria.role.doc-toc + aria.role.doc-toc = attribute role { string "doc-toc" } + common.attrs.aria |= aria.doc-toc + common.attrs.aria.role.doc-toc |= aria.doc-toc diff --git a/xml/relaxng/src/resources/html5-schema/html5/block.rnc b/xml/relaxng/src/resources/html5-schema/html5/block.rnc index 6f06902115f5..c4e2c8cc5322 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/block.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/block.rnc @@ -64,6 +64,7 @@ datatypes w = "http://whattf.org/datatype-draft" | 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 @@ -84,13 +85,14 @@ datatypes w = "http://whattf.org/datatype-draft" li.elem = element li { li.inner & li.attrs } li.attrs = - ( common.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 @@ -115,6 +117,7 @@ datatypes w = "http://whattf.org/datatype-draft" | 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 @@ -155,6 +158,7 @@ datatypes w = "http://whattf.org/datatype-draft" | 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 @@ -190,6 +194,11 @@ datatypes w = "http://whattf.org/datatype-draft" & common.elem.script-supporting* )+ )* + | + ( dldiv.elem + & common.elem.script-supporting* + )+ + | common.elem.script-supporting* ) common.elem.flow |= dl.elem @@ -236,12 +245,32 @@ datatypes w = "http://whattf.org/datatype-draft" common.elem.flow |= div.elem + dldiv.elem = + element div { dldiv.inner & div.attrs } + dldiv.inner = + ( ( dt.elem + & common.elem.script-supporting* + )+ + , + ( dd.elem + & common.elem.script-supporting* + )+ + ) + ## Title or Explanatory Caption: legend.elem = element legend { legend.inner & legend.attrs } legend.attrs = ( common.attrs - ) + ) legend.inner = - ( common.inner.phrasing ) + ( 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 0800048f2e38..c6b97872b261 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/common.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/common.rnc @@ -296,9 +296,6 @@ common.attrs.other = common.data.datetime = w:datetime-tz - common.data.date-or-time = - w:date-or-time - common.data.date = w:date @@ -328,6 +325,9 @@ common.attrs.other = common.data.uris = list { w:iri-ref* } + common.data.uris.http.or.https = + list { w:iri-ref-http-or-https* } + common.data.uri.absolute = w:iri @@ -400,6 +400,10 @@ common.attrs.other = common.data.sandbox-allow-list = w:string "" | w:sandbox-allow-list +## Custom element name + common.data.custom.element.name = + w:custom-element-name + ## Microdata Properties common.data.microdata-properties = list { w:microdata-property+ } @@ -440,6 +444,7 @@ common.attrs.aria.role.application = ( notAllowed ) common.attrs.aria.role.article = ( notAllowed ) common.attrs.aria.role.banner = ( notAllowed ) common.attrs.aria.role.button = ( notAllowed ) +common.attrs.aria.role.cell |= ( notAllowed ) common.attrs.aria.role.checkbox = ( notAllowed ) common.attrs.aria.role.combobox = ( notAllowed ) common.attrs.aria.role.complementary = ( notAllowed ) @@ -447,6 +452,8 @@ common.attrs.aria.role.contentinfo = ( 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 ) common.attrs.aria.role.group = ( notAllowed ) common.attrs.aria.role.heading = ( notAllowed ) common.attrs.aria.role.img = ( notAllowed ) @@ -467,14 +474,18 @@ common.attrs.aria.role.option = ( notAllowed ) common.attrs.aria.role.presentation = ( notAllowed ) common.attrs.aria.role.progressbar = ( notAllowed ) common.attrs.aria.role.radio = ( notAllowed ) +common.attrs.aria.role.radiogroup |= ( notAllowed ) common.attrs.aria.role.region = ( notAllowed ) +common.attrs.aria.role.rowgroup |= ( notAllowed ) common.attrs.aria.role.search = ( notAllowed ) +common.attrs.aria.role.searchbox |= ( notAllowed ) common.attrs.aria.role.separator = ( notAllowed ) common.attrs.aria.role.slider = ( notAllowed ) common.attrs.aria.role.spinbutton = ( notAllowed ) common.attrs.aria.role.status = ( notAllowed ) common.attrs.aria.role.switch = ( notAllowed ) common.attrs.aria.role.tab = ( notAllowed ) +common.attrs.aria.role.table |= ( notAllowed ) common.attrs.aria.role.tablist = ( notAllowed ) common.attrs.aria.role.tabpanel = ( notAllowed ) common.attrs.aria.role.textbox = ( notAllowed ) @@ -484,12 +495,14 @@ common.attrs.aria.role.treeitem = ( notAllowed ) common.attrs.aria.implicit.article = ( notAllowed ) common.attrs.aria.implicit.banner = ( notAllowed ) common.attrs.aria.implicit.button = ( notAllowed ) +common.attrs.aria.implicit.cell |= ( notAllowed ) common.attrs.aria.implicit.checkbox = ( notAllowed ) common.attrs.aria.implicit.column-or-row-header = ( notAllowed ) common.attrs.aria.implicit.combobox = ( notAllowed ) common.attrs.aria.implicit.complementary = ( notAllowed ) common.attrs.aria.implicit.contentinfo = ( notAllowed ) common.attrs.aria.implicit.dialog = ( notAllowed ) +common.attrs.aria.implicit.figure |= ( notAllowed ) common.attrs.aria.implicit.document = ( notAllowed ) common.attrs.aria.implicit.form = ( notAllowed ) common.attrs.aria.implicit.group = ( notAllowed ) @@ -506,12 +519,16 @@ common.attrs.aria.implicit.option = ( notAllowed ) common.attrs.aria.implicit.progressbar = ( notAllowed ) common.attrs.aria.implicit.radio = ( notAllowed ) common.attrs.aria.implicit.region = ( notAllowed ) +common.attrs.aria.implicit.row |= ( notAllowed ) +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.slider = ( notAllowed ) common.attrs.aria.implicit.spinbutton = ( notAllowed ) common.attrs.aria.implicit.status = ( notAllowed ) common.attrs.aria.implicit.structure = ( notAllowed ) +common.attrs.aria.implicit.table |= ( notAllowed ) common.attrs.aria.implicit.textbox = ( notAllowed ) common.attrs.aria.implicit.toolbar = ( notAllowed ) common.attrs.aria.prop.readonly = ( notAllowed ) @@ -527,3 +544,43 @@ common.attrs.aria.landmark.search = ( notAllowed ) common.attrs.aria.landmark.article = ( notAllowed ) common.attrs.aria.landmark.document = ( notAllowed ) common.attrs.aria.landmark.note = ( notAllowed ) + +common.attrs.aria.role.doc-abstract = ( notAllowed ) +common.attrs.aria.role.doc-acknowledgments = ( notAllowed ) +common.attrs.aria.role.doc-afterword = ( notAllowed ) +common.attrs.aria.role.doc-appendix = ( notAllowed ) +common.attrs.aria.role.doc-backlink = ( notAllowed ) +common.attrs.aria.role.doc-biblioentry = ( notAllowed ) +common.attrs.aria.role.doc-bibliography = ( notAllowed ) +common.attrs.aria.role.doc-biblioref = ( notAllowed ) +common.attrs.aria.role.doc-chapter = ( notAllowed ) +common.attrs.aria.role.doc-colophon = ( notAllowed ) +common.attrs.aria.role.doc-conclusion = ( notAllowed ) +common.attrs.aria.role.doc-cover = ( notAllowed ) +common.attrs.aria.role.doc-credit = ( notAllowed ) +common.attrs.aria.role.doc-credits = ( notAllowed ) +common.attrs.aria.role.doc-dedication = ( notAllowed ) +common.attrs.aria.role.doc-endnote = ( notAllowed ) +common.attrs.aria.role.doc-endnotes = ( notAllowed ) +common.attrs.aria.role.doc-epigraph = ( notAllowed ) +common.attrs.aria.role.doc-epilogue = ( notAllowed ) +common.attrs.aria.role.doc-errata = ( notAllowed ) +common.attrs.aria.role.doc-example = ( notAllowed ) +common.attrs.aria.role.doc-footnote = ( notAllowed ) +common.attrs.aria.role.doc-foreword = ( notAllowed ) +common.attrs.aria.role.doc-glossary = ( notAllowed ) +common.attrs.aria.role.doc-glossref = ( notAllowed ) +common.attrs.aria.role.doc-index = ( notAllowed ) +common.attrs.aria.role.doc-introduction = ( notAllowed ) +common.attrs.aria.role.doc-noteref = ( notAllowed ) +common.attrs.aria.role.doc-notice = ( notAllowed ) +common.attrs.aria.role.doc-pagebreak = ( notAllowed ) +common.attrs.aria.role.doc-pagelist = ( notAllowed ) +common.attrs.aria.role.doc-part = ( notAllowed ) +common.attrs.aria.role.doc-preface = ( notAllowed ) +common.attrs.aria.role.doc-prologue = ( notAllowed ) +common.attrs.aria.role.doc-pullquote = ( notAllowed ) +common.attrs.aria.role.doc-qna = ( notAllowed ) +common.attrs.aria.role.doc-subtitle = ( notAllowed ) +common.attrs.aria.role.doc-tip = ( notAllowed ) +common.attrs.aria.role.doc-toc = ( 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 33e8ff705f9b..0f5d6d8e3524 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/core-scripting.rnc @@ -53,7 +53,7 @@ datatypes w = "http://whattf.org/datatype-draft" } & v5only script.attrs.type = attribute type { - common.data.mimetype # XXX without charset parameter! + w:string "module" | common.data.mimetype # XXX without charset parameter! } script.attrs.charset = attribute charset { diff --git a/xml/relaxng/src/resources/html5-schema/html5/embed.rnc b/xml/relaxng/src/resources/html5-schema/html5/embed.rnc index 683fa0474649..954483050f19 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/embed.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/embed.rnc @@ -23,6 +23,7 @@ namespace local = "" & img.attrs.usemap? & img.attrs.ismap? & img.attrs.border? # obsolete + & referrerpolicy? & embedded.content.attrs.crossorigin? & ( common.attrs.aria.implicit.img | common.attrs.aria @@ -151,21 +152,22 @@ namespace local = "" common.data.integer.non-negative } embed.attrs.other = # REVISIT common.attrs - attribute local:* - ( src - | type - | height - | width - | id + attribute local:* - ( src + | type + | height + | width + | id + | is | class - | title - | dir - | lang - | translate - | style - | tabindex - | contextmenu - | contenteditable - | draggable + | title + | dir + | lang + | translate + | style + | tabindex + | contextmenu + | contenteditable + | draggable | dropzone | hidden | onabort @@ -235,21 +237,26 @@ namespace local = "" | aria-atomic | aria-busy | aria-controls + | aria-current + | aria-details | aria-describedby | aria-disabled | aria-dropeffect + | aria-errormessage | aria-expanded | aria-flowto | aria-grabbed | aria-haspopup | aria-hidden | aria-invalid + | aria-keyshortcuts | aria-label | aria-labelledby | aria-live | aria-owns | aria-relevant | aria-required + | aria-roledescription | spellcheck | accesskey | itemref @@ -317,7 +324,7 @@ namespace local = "" | its-storage-encoding | its-line-break-type | its-annotators-ref - ) + ) { string } @@ -430,6 +437,8 @@ namespace local = "" & iframe.attrs.height? & iframe.attrs.sandbox? & iframe.attrs.allowfullscreen? + & iframe.attrs.allowusermedia? + & referrerpolicy? & ( common.attrs.aria.landmark.application | common.attrs.aria.landmark.document | common.attrs.aria.role.img @@ -464,8 +473,12 @@ namespace local = "" attribute allowfullscreen { w:string "allowfullscreen" | w:string "" } & v5only + iframe.attrs.allowusermedia = + attribute allowusermedia { + w:string "allowusermedia" | w:string "" + } & v5only iframe.inner = - ( ( text & HTMLonly ) | empty ) + empty common.elem.phrasing |= iframe.elem diff --git a/xml/relaxng/src/resources/html5-schema/html5/html5core.rnc b/xml/relaxng/src/resources/html5-schema/html5/html5core.rnc index 813f3563c648..fa4a63e2bce7 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/html5core.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/html5core.rnc @@ -1,7 +1,7 @@ include "common.rnc" { - XMLonly = notAllowed - HTMLonly = empty - v5only = notAllowed + XMLonly = notAllowed + HTMLonly = empty + v5only = notAllowed } start = html.elem include "phrase.rnc" diff --git a/xml/relaxng/src/resources/html5-schema/html5/html5full-no-microdata.rnc b/xml/relaxng/src/resources/html5-schema/html5/html5full-no-microdata.rnc index 2317e0e247de..b619cd6d9c54 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/html5full-no-microdata.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/html5full-no-microdata.rnc @@ -1,10 +1,10 @@ default namespace = "http://www.w3.org/1999/xhtml" include "common.rnc" { - XMLonly = notAllowed - HTMLonly = empty - v5only = empty - nonHTMLizable = notAllowed - nonRoundtrippable = notAllowed + XMLonly = notAllowed + HTMLonly = empty + v5only = empty + nonHTMLizable = notAllowed + nonRoundtrippable = notAllowed } start = html.elem include "phrase.rnc" @@ -26,10 +26,10 @@ include "data.rnc" include "legacy.rnc" include "aria.rnc" include "meta.rnc" { - html.inner = - ( head.elem - , ( body.elem - | frameset.elem - ) - ) + html.inner = + ( head.elem + , ( body.elem + | frameset.elem + ) + ) } diff --git a/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfa.rnc b/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfa.rnc index c894d88b3876..92263e087e66 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfa.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfa.rnc @@ -1,10 +1,10 @@ default namespace = "http://www.w3.org/1999/xhtml" include "common.rnc" { - XMLonly = notAllowed - HTMLonly = empty - v5only = empty - nonHTMLizable = notAllowed - nonRoundtrippable = notAllowed + XMLonly = notAllowed + HTMLonly = empty + v5only = empty + nonHTMLizable = notAllowed + nonRoundtrippable = notAllowed } include "common-ext.rnc" @@ -30,12 +30,12 @@ include "data.rnc" include "legacy.rnc" include "aria.rnc" include "meta.rnc" { - html.inner = - ( head.elem - , ( body.elem - | frameset.elem - ) - ) + html.inner = + ( head.elem + , ( body.elem + | frameset.elem + ) + ) } include "meta-ext.rnc" include "rdfa.rnc" diff --git a/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfalite.rnc b/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfalite.rnc index f201158187d7..c3c202ee05ce 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfalite.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/html5full-rdfalite.rnc @@ -1,10 +1,10 @@ default namespace = "http://www.w3.org/1999/xhtml" include "common.rnc" { - XMLonly = notAllowed - HTMLonly = empty - v5only = empty - nonHTMLizable = notAllowed - nonRoundtrippable = notAllowed + XMLonly = notAllowed + HTMLonly = empty + v5only = empty + nonHTMLizable = notAllowed + nonRoundtrippable = notAllowed } start = html.elem include "phrase.rnc" @@ -26,14 +26,14 @@ include "data.rnc" include "legacy.rnc" include "aria.rnc" include "meta.rnc" { - html.inner = - ( head.elem - , ( body.elem - | frameset.elem - ) - ) + html.inner = + ( head.elem + , ( body.elem + | frameset.elem + ) + ) } include "microdata.rnc" include "rdfa.rnc" { - nonRDFaLite = notAllowed + nonRDFaLite = notAllowed } diff --git a/xml/relaxng/src/resources/html5-schema/html5/html5full.rnc b/xml/relaxng/src/resources/html5-schema/html5/html5full.rnc index 4020c804ac51..369df560f6b4 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/html5full.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/html5full.rnc @@ -1,10 +1,10 @@ default namespace = "http://www.w3.org/1999/xhtml" include "common.rnc" { - XMLonly = notAllowed - HTMLonly = empty - v5only = empty - nonHTMLizable = notAllowed - nonRoundtrippable = notAllowed + XMLonly = notAllowed + HTMLonly = empty + v5only = empty + nonHTMLizable = notAllowed + nonRoundtrippable = notAllowed } start = html.elem include "phrase.rnc" @@ -26,11 +26,11 @@ include "data.rnc" include "legacy.rnc" include "aria.rnc" include "meta.rnc" { - html.inner = - ( head.elem - , ( body.elem - | frameset.elem - ) - ) + html.inner = + ( head.elem + , ( body.elem + | frameset.elem + ) + ) } include "microdata.rnc" diff --git a/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc b/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc index 3d6f1c1930ef..26e751ebcf29 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/legacy.rnc @@ -302,6 +302,16 @@ datatypes w = "http://whattf.org/datatype-draft" # if the definition is # reused in another language +## Key-pair generator/input control: + + keygen.elem = + element keygen { keygen.inner & keygen.attrs* } + keygen.attrs = attribute * { text } + keygen.inner = + ( empty ) + + common.elem.phrasing |= keygen.elem + ## Obsolete attributes ## abbr attribute diff --git a/xml/relaxng/src/resources/html5-schema/html5/media.rnc b/xml/relaxng/src/resources/html5-schema/html5/media.rnc index 28cbb630bb39..0818125b58d2 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/media.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/media.rnc @@ -12,7 +12,6 @@ datatypes w = "http://whattf.org/datatype-draft" & media.attrs.preload? & media.attrs.controls? & media.attrs.loop? - & media.attrs.mediagroup? & media.attrs.muted? & embedded.content.attrs.crossorigin? ) @@ -32,10 +31,6 @@ datatypes w = "http://whattf.org/datatype-draft" attribute loop { w:string "loop" | w:string "" } - media.attrs.mediagroup = - attribute mediagroup { - string - } media.attrs.muted = attribute muted { w:string "muted" | w:string "" @@ -88,6 +83,7 @@ datatypes w = "http://whattf.org/datatype-draft" & video.attrs.poster? & video.attrs.height? & video.attrs.width? + & video.attrs.playsinline? & common.attrs.aria.landmark.application? ) video.attrs.poster = @@ -102,6 +98,10 @@ datatypes w = "http://whattf.org/datatype-draft" attribute width { common.data.integer.non-negative } + video.attrs.playsinline = + attribute playsinline { + w:string "playsinline" | w:string "" + } video.inner.flow = ( media.source , track.elem* @@ -187,7 +187,10 @@ datatypes w = "http://whattf.org/datatype-draft" element figure { figure.inner & figure.attrs } figure.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.figure + | common.attrs.aria.role.presentation + | common.attrs.aria.role.group + )? ) figure.inner = ( ( figcaption.elem?, common.inner.flow ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/meta.rnc b/xml/relaxng/src/resources/html5-schema/html5/meta.rnc index 19e24e12694a..ffa7f6dfd8f1 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/meta.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/meta.rnc @@ -9,11 +9,7 @@ datatypes w = "http://whattf.org/datatype-draft" html.elem = element html { html.inner & html.attrs } html.attrs = - ( common.attrs - & ( common.attrs.aria.role.presentation - | common.attrs.aria.role.menuitem - )? - ) + ( common.attrs ) html.inner = ( head.elem , body.elem @@ -160,9 +156,11 @@ datatypes w = "http://whattf.org/datatype-draft" & link.attrs.rel & link.attrs.as? & link.attrs.integrity? + & link.attrs.nonce? & shared-hyperlink.attrs.hreflang? & shared-hyperlink.attrs.media? & shared-hyperlink.attrs.type? + & referrerpolicy? & link.attrs.sizes? # link.attrs.title included in common.attrs & embedded.content.attrs.crossorigin? @@ -201,6 +199,10 @@ datatypes w = "http://whattf.org/datatype-draft" attribute integrity { common.data.integrity } + link.attrs.nonce = + attribute nonce{ + string + } link.attrs.sizes = attribute sizes { w:string "any" | common.data.sizes @@ -254,6 +256,10 @@ datatypes w = "http://whattf.org/datatype-draft" & common.attrs.other & meta.name.attrs.name & meta.name.attrs.content + & common.attrs.microdata.itemref? + & common.attrs.microdata.itemscope? + & common.attrs.microdata.itemtype? + & common.attrs.microdata.itemid? & ( common.attrs.aria.role.presentation | common.attrs.aria.role.menuitem )? diff --git a/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc b/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc index b68194c896a4..18ed7c4b62a2 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/phrase.rnc @@ -23,6 +23,7 @@ datatypes w = "http://whattf.org/datatype-draft" & shared-hyperlink.attrs.hreflang? & shared-hyperlink.attrs.type? & shared-hyperlink.attrs.ping? + & referrerpolicy? & ( common.attrs.aria.implicit.link | common.attrs.aria.role.button | common.attrs.aria.role.checkbox @@ -30,6 +31,7 @@ datatypes w = "http://whattf.org/datatype-draft" | 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.switch | common.attrs.aria.role.tab @@ -79,6 +81,19 @@ datatypes w = "http://whattf.org/datatype-draft" common.data.mimetype } +referrerpolicy = + attribute referrerpolicy { + string "" + | string "no-referrer" + | string "no-referrer-when-downgrade" + | string "same-origin" + | string "origin" + | string "strict-origin" + | string "origin-when-cross-origin" + | string "strict-origin-when-cross-origin" + | string "unsafe-url" + } & v5only + ## Emphatic Stress: em.elem = diff --git a/xml/relaxng/src/resources/html5-schema/html5/ruby.rnc b/xml/relaxng/src/resources/html5-schema/html5/ruby.rnc index dfd0e3fbfc75..e58992ba3c05 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/ruby.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/ruby.rnc @@ -78,4 +78,4 @@ namespace local = "" & common.attrs.aria? ) rp.inner = - ( common.inner.phrasing ) + ( text ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/structural.rnc b/xml/relaxng/src/resources/html5-schema/html5/structural.rnc index 392497bf3dfe..8e2990ecd1ba 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/structural.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/structural.rnc @@ -13,10 +13,12 @@ | common.attrs.aria.role.alertdialog | 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.region | common.attrs.aria.role.status + | common.attrs.aria.role.tabpanel | common.attrs.aria.landmark.application | common.attrs.aria.landmark.banner | common.attrs.aria.landmark.complementary @@ -57,6 +59,8 @@ | common.attrs.aria.landmark.document | common.attrs.aria.landmark.application | common.attrs.aria.landmark.main + | common.attrs.aria.role.feed + | common.attrs.aria.role.region | common.attrs.aria.role.presentation )? ) @@ -77,6 +81,8 @@ | common.attrs.aria.landmark.note | common.attrs.aria.landmark.complementary | common.attrs.aria.landmark.search + | common.attrs.aria.role.feed + | common.attrs.aria.role.region | common.attrs.aria.role.presentation )? ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/tables.rnc b/xml/relaxng/src/resources/html5-schema/html5/tables.rnc index b6021dac22dd..bc81eb5c063f 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/tables.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/tables.rnc @@ -50,7 +50,9 @@ datatypes w = "http://whattf.org/datatype-draft" element table { table.inner & table.attrs } table.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.table + | common.attrs.aria + )? ) table.inner = ( caption.elem? @@ -59,17 +61,11 @@ datatypes w = "http://whattf.org/datatype-draft" , common.elem.script-supporting* , thead.elem? , common.elem.script-supporting* - , ( ( tfoot.elem - , common.elem.script-supporting* - , ( tbody.elem* | tr.elem+ ) - , common.elem.script-supporting* - ) - | ( ( tbody.elem* | tr.elem+ ) - , common.elem.script-supporting* - , tfoot.elem? - ) + , ( ( tbody.elem* | tr.elem+ ) + , common.elem.script-supporting* + , tfoot.elem? ) - ) + ) common.elem.flow |= table.elem @@ -128,7 +124,9 @@ datatypes w = "http://whattf.org/datatype-draft" element thead { thead.inner & thead.attrs } thead.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.rowgroup + | common.attrs.aria + )? ) thead.inner = ( tr.elem* @@ -141,7 +139,9 @@ datatypes w = "http://whattf.org/datatype-draft" element tfoot { tfoot.inner & tfoot.attrs } tfoot.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.rowgroup + | common.attrs.aria + )? ) tfoot.inner = ( tr.elem* @@ -154,7 +154,9 @@ datatypes w = "http://whattf.org/datatype-draft" element tbody { tbody.inner & tbody.attrs } tbody.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.rowgroup + | common.attrs.aria + )? ) tbody.inner = ( tr.elem* @@ -170,7 +172,9 @@ datatypes w = "http://whattf.org/datatype-draft" element tr { tr.inner & tr.attrs } tr.attrs = ( common.attrs - & common.attrs.aria? + & ( common.attrs.aria.implicit.row + | common.attrs.aria + )? ) tr.inner = ( ( td.elem | th.elem | common.elem.script-supporting )* ) @@ -221,7 +225,9 @@ datatypes w = "http://whattf.org/datatype-draft" & tables.attrs.cell-structure & tables.attrs.headers? # & tables.attrs.alignment - & common.attrs.aria? + & ( common.attrs.aria.implicit.cell + | common.attrs.aria + )? ) td.inner = ( common.inner.flow ) diff --git a/xml/relaxng/src/resources/html5-schema/html5/web-components.rnc b/xml/relaxng/src/resources/html5-schema/html5/web-components.rnc index bf45715c7bba..396735de9fb2 100644 --- a/xml/relaxng/src/resources/html5-schema/html5/web-components.rnc +++ b/xml/relaxng/src/resources/html5-schema/html5/web-components.rnc @@ -1,4 +1,5 @@ datatypes w = "http://whattf.org/datatype-draft" +namespace c = "http://n.validator.nu/custom-elements/" # ##################################################################### ## RELAX NG Schema for HTML 5: Web Components @@ -33,7 +34,7 @@ datatypes w = "http://whattf.org/datatype-draft" | fieldset.inner | select.inner | details.inner - | menu.popup.inner + | menu.context.inner ) common.elem.metadata |= template.elem common.elem.phrasing |= template.elem @@ -41,3 +42,10 @@ datatypes w = "http://whattf.org/datatype-draft" # also allow