mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-06 06:21:16 +07:00
Updated html 5 schema
This commit is contained in:
@@ -2,7 +2,7 @@ The RELAX NG Schema for (X)HTML 5 is licensed under the MIT open source license.
|
||||
The following legal notice applies to all files in this directory:
|
||||
|
||||
Copyright (c) 2005-2007 Elika J. Etemad (fantasai) and Henri Sivonen (hsivonen)
|
||||
Copyright (c) 2007-2008 Mozilla Foundation
|
||||
Copyright (c) 2007-2012 Mozilla Foundation
|
||||
|
||||
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
|
||||
|
||||
@@ -43,8 +43,8 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
common.attrs.dropzone =
|
||||
attribute dropzone {
|
||||
list {
|
||||
( xsd:string { pattern = "[sS]:.+" }
|
||||
| xsd:string { pattern = "[fF]:.+" }
|
||||
( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
|
||||
| xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
|
||||
)*
|
||||
,
|
||||
( w:string "copy"
|
||||
@@ -52,8 +52,8 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
| w:string "link"
|
||||
)?
|
||||
,
|
||||
( xsd:string { pattern = "[sS]:.+" }
|
||||
| xsd:string { pattern = "[fF]:.+" }
|
||||
( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
|
||||
| xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
|
||||
)*
|
||||
}
|
||||
}
|
||||
@@ -89,6 +89,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& progress.attrs.value?
|
||||
& progress.attrs.max?
|
||||
& ( common.attrs.aria.role.progressbar
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
progress.attrs.value =
|
||||
attribute value {
|
||||
@@ -103,6 +107,34 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
common.elem.phrasing |= progress.elem
|
||||
|
||||
## Dialog box, inspector, or window: <dialog>
|
||||
dialog.elem =
|
||||
element dialog { dialog.inner & dialog.attrs }
|
||||
dialog.attrs =
|
||||
( common.attrs
|
||||
& dialog.attrs.open?
|
||||
& ( common.attrs.aria.role.alert
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.main
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.region
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
dialog.attrs.open =
|
||||
attribute open {
|
||||
w:string "open" | w:string ""
|
||||
}
|
||||
dialog.inner =
|
||||
( common.inner.flow )
|
||||
common.elem.flow |= dialog.elem
|
||||
|
||||
## Command with an associated action: <command type='command'>
|
||||
|
||||
command.command.elem =
|
||||
@@ -111,6 +143,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& command.command.attrs.type?
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.command.attrs.type =
|
||||
attribute type {
|
||||
@@ -124,11 +159,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element command { command.inner & command.radio.attrs }
|
||||
command.radio.attrs =
|
||||
( common.attrs
|
||||
& ( command.radio.attrs.type
|
||||
& command.radio.attrs.radiogroup #REVISIT taking liberties here
|
||||
& command.radio.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( command.radio.attrs.type
|
||||
& command.radio.attrs.radiogroup #REVISIT taking liberties here
|
||||
& command.radio.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.radio.attrs.type =
|
||||
attribute type {
|
||||
@@ -150,11 +188,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element command { command.inner & command.checkbox.attrs }
|
||||
command.checkbox.attrs =
|
||||
( common.attrs
|
||||
& ( command.checkbox.attrs.type
|
||||
& command.checkbox.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( command.checkbox.attrs.type
|
||||
& command.checkbox.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.checkbox.attrs.type =
|
||||
attribute type {
|
||||
w:string "checkbox"
|
||||
@@ -197,6 +238,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& menu.attrs.type?
|
||||
& menu.attrs.label?
|
||||
& common.attrs.aria? # some roles only allowed if type is "toolbar" state; check in assertions
|
||||
)
|
||||
menu.attrs.type =
|
||||
attribute type {
|
||||
@@ -219,7 +261,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
mli.elem =
|
||||
element li { mli.inner & mli.attrs }
|
||||
mli.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& common.attrs.aria?
|
||||
)
|
||||
mli.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -244,7 +288,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
common.data.integer.non-negative
|
||||
}
|
||||
canvas.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
canvas.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -258,15 +302,50 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
details.attrs =
|
||||
( common.attrs
|
||||
& details.attrs.open?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region # aria-expanded must be true if open attr present; check by assertions
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.banner
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.combobox
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.img
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.listitem
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.note
|
||||
| common.attrs.aria.role.separator
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.tabpanel
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.treeitem
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.form
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.landmark.navigation
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
details.attrs.open =
|
||||
attribute open {
|
||||
w:string "open" | w:string ""
|
||||
}
|
||||
details.inner =
|
||||
( summary.elem?
|
||||
, common.inner.flow
|
||||
( summary.elem
|
||||
, common.inner.flow
|
||||
)
|
||||
|
||||
common.elem.flow |= details.elem
|
||||
@@ -276,6 +355,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
summary.elem =
|
||||
element summary { summary.inner & summary.attrs }
|
||||
summary.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
summary.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -315,6 +315,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
{ string "true"
|
||||
| string "false" #default
|
||||
}
|
||||
common.attrs.aria.prop.readonly |= aria.prop.readonly
|
||||
|
||||
## relevant
|
||||
aria.prop.relevant =
|
||||
@@ -410,6 +411,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "alert" }
|
||||
|
||||
common.attrs.aria |= aria.alert
|
||||
common.attrs.aria.role.alert |= aria.alert
|
||||
|
||||
## alertdialog
|
||||
aria.alertdialog =
|
||||
@@ -420,6 +422,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "alertdialog" }
|
||||
|
||||
common.attrs.aria |= aria.alertdialog
|
||||
common.attrs.aria.role.alertdialog |= aria.alertdialog
|
||||
|
||||
## application
|
||||
aria.application =
|
||||
@@ -463,6 +466,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "button" }
|
||||
|
||||
common.attrs.aria |= aria.button
|
||||
common.attrs.aria.role.button |= aria.button
|
||||
|
||||
## checkbox
|
||||
aria.checkbox =
|
||||
@@ -474,7 +478,18 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.checkbox
|
||||
|
||||
# XXX columnheader
|
||||
# columnheader
|
||||
aria.columnheader =
|
||||
( aria.role.columnheader
|
||||
& aria.prop.sort? # not inherited
|
||||
& aria.prop.readonly? # not inherited
|
||||
& aria.state.selected? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.columnheader =
|
||||
attribute role { string "columnheader" }
|
||||
|
||||
common.attrs.aria |= aria.columnheader
|
||||
|
||||
## combobox
|
||||
aria.combobox =
|
||||
@@ -486,6 +501,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "combobox" }
|
||||
|
||||
common.attrs.aria |= aria.combobox
|
||||
common.attrs.aria.role.combobox |= aria.combobox
|
||||
|
||||
## complementary
|
||||
aria.complementary =
|
||||
@@ -528,6 +544,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "dialog" }
|
||||
|
||||
common.attrs.aria |= aria.dialog
|
||||
common.attrs.aria.role.dialog |= aria.dialog
|
||||
|
||||
## directory
|
||||
aria.directory =
|
||||
@@ -538,6 +555,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "directory" }
|
||||
|
||||
common.attrs.aria |= aria.directory
|
||||
common.attrs.aria.role.directory |= aria.directory
|
||||
|
||||
## document
|
||||
aria.document =
|
||||
@@ -550,6 +568,17 @@ common.attrs.aria.implicit.listitem |=
|
||||
common.attrs.aria |= aria.document
|
||||
common.attrs.aria.landmark.document |= aria.document
|
||||
|
||||
## form
|
||||
aria.form =
|
||||
( aria.role.form
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.form =
|
||||
attribute role { string "form" }
|
||||
|
||||
common.attrs.aria |= aria.form
|
||||
common.attrs.aria.landmark.form |= aria.form
|
||||
|
||||
## grid
|
||||
aria.grid =
|
||||
( aria.role.grid
|
||||
@@ -588,7 +617,17 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.group
|
||||
|
||||
## XXX heading
|
||||
## heading
|
||||
aria.heading =
|
||||
( aria.role.heading
|
||||
& aria.prop.level ? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.heading =
|
||||
attribute role { string "heading" }
|
||||
|
||||
common.attrs.aria |= aria.heading
|
||||
common.attrs.aria.role.heading |= aria.heading
|
||||
|
||||
## img
|
||||
aria.img =
|
||||
@@ -599,6 +638,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "img" }
|
||||
|
||||
common.attrs.aria |= aria.img
|
||||
common.attrs.aria.role.img |= aria.img
|
||||
|
||||
## link
|
||||
aria.link =
|
||||
@@ -608,6 +648,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "link" }
|
||||
|
||||
common.attrs.aria |= aria.link
|
||||
common.attrs.aria.role.link |= aria.link
|
||||
|
||||
## list
|
||||
aria.list =
|
||||
@@ -618,6 +659,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "list" }
|
||||
|
||||
common.attrs.aria |= aria.list
|
||||
common.attrs.aria.role.list |= aria.list
|
||||
|
||||
## listbox
|
||||
aria.listbox =
|
||||
@@ -630,6 +672,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "listbox" }
|
||||
|
||||
common.attrs.aria |= aria.listbox
|
||||
common.attrs.aria.role.listbox |= aria.listbox
|
||||
|
||||
## listitem
|
||||
aria.listitem =
|
||||
@@ -643,6 +686,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "listitem" }
|
||||
|
||||
common.attrs.aria |= aria.listitem
|
||||
common.attrs.aria.role.listitem |= aria.listitem
|
||||
|
||||
## log
|
||||
aria.log =
|
||||
@@ -653,6 +697,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "log" }
|
||||
|
||||
common.attrs.aria |= aria.log
|
||||
common.attrs.aria.role.log |= aria.log
|
||||
|
||||
## main
|
||||
aria.main =
|
||||
@@ -674,6 +719,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "marquee" }
|
||||
|
||||
common.attrs.aria |= aria.marquee
|
||||
common.attrs.aria.role.marquee |= aria.marquee
|
||||
|
||||
## math
|
||||
aria.math =
|
||||
@@ -695,6 +741,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menu" }
|
||||
|
||||
common.attrs.aria |= aria.menu
|
||||
common.attrs.aria.role.menu |= aria.menu
|
||||
|
||||
## menubar
|
||||
aria.menubar =
|
||||
@@ -706,6 +753,8 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menubar" }
|
||||
|
||||
common.attrs.aria |= aria.menubar
|
||||
common.attrs.aria.role.menubar |= aria.menubar
|
||||
|
||||
|
||||
## menuitem
|
||||
aria.menuitem =
|
||||
@@ -714,6 +763,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitem" }
|
||||
|
||||
common.attrs.aria |= aria.menuitem
|
||||
common.attrs.aria.role.menuitem |= aria.menuitem
|
||||
|
||||
## menuitemcheckbox
|
||||
aria.menuitemcheckbox =
|
||||
@@ -724,6 +774,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitemcheckbox" }
|
||||
|
||||
common.attrs.aria |= aria.menuitemcheckbox
|
||||
common.attrs.aria.role.menuitemcheckbox |= aria.menuitemcheckbox
|
||||
|
||||
## menuitemradio
|
||||
aria.menuitemradio =
|
||||
@@ -735,6 +786,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitemradio" }
|
||||
|
||||
common.attrs.aria |= aria.menuitemradio
|
||||
common.attrs.aria.role.menuitemradio |= aria.menuitemradio
|
||||
|
||||
## navigation
|
||||
aria.navigation =
|
||||
@@ -768,6 +820,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "option" }
|
||||
|
||||
common.attrs.aria |= aria.option
|
||||
common.attrs.aria.role.option |= aria.option
|
||||
|
||||
|
||||
## presentation
|
||||
@@ -779,6 +832,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "presentation" }
|
||||
|
||||
common.attrs.aria |= aria.presentation
|
||||
common.attrs.aria.role.presentation |= aria.presentation
|
||||
|
||||
## progressbar
|
||||
aria.progressbar =
|
||||
@@ -792,6 +846,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "progressbar" }
|
||||
|
||||
common.attrs.aria |= aria.progressbar
|
||||
common.attrs.aria.role.progressbar |= aria.progressbar
|
||||
|
||||
## radio
|
||||
aria.radio =
|
||||
@@ -803,6 +858,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "radio" }
|
||||
|
||||
common.attrs.aria |= aria.radio
|
||||
common.attrs.aria.role.radio |= aria.radio
|
||||
|
||||
## radiogroup
|
||||
aria.radiogroup =
|
||||
@@ -824,6 +880,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "region" }
|
||||
|
||||
common.attrs.aria |= aria.region
|
||||
common.attrs.aria.role.region |= aria.region
|
||||
|
||||
## row
|
||||
aria.row =
|
||||
@@ -838,7 +895,18 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.row
|
||||
|
||||
# XXX rowheader
|
||||
# rowheader
|
||||
aria.rowheader =
|
||||
( aria.role.rowheader
|
||||
& aria.prop.sort? # not inherited
|
||||
& aria.prop.readonly? # not inherited
|
||||
& aria.state.selected? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.rowheader =
|
||||
attribute role { string "rowheader" }
|
||||
|
||||
common.attrs.aria |= aria.rowheader
|
||||
|
||||
## search
|
||||
aria.search =
|
||||
@@ -860,6 +928,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "separator" }
|
||||
|
||||
common.attrs.aria |= aria.separator
|
||||
common.attrs.aria.role.separator |= aria.separator
|
||||
|
||||
## slider
|
||||
aria.slider =
|
||||
@@ -873,6 +942,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "slider" }
|
||||
|
||||
common.attrs.aria |= aria.slider
|
||||
common.attrs.aria.role.slider |= aria.slider
|
||||
|
||||
## spinbutton
|
||||
aria.spinbutton =
|
||||
@@ -887,6 +957,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "spinbutton" }
|
||||
|
||||
common.attrs.aria |= aria.spinbutton
|
||||
common.attrs.aria.role.spinbutton |= aria.spinbutton
|
||||
|
||||
## status
|
||||
aria.status =
|
||||
@@ -898,6 +969,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "status" }
|
||||
|
||||
common.attrs.aria |= aria.status
|
||||
common.attrs.aria.role.status |= aria.status
|
||||
|
||||
## tab
|
||||
aria.tab =
|
||||
@@ -909,6 +981,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tab" }
|
||||
|
||||
common.attrs.aria |= aria.tab
|
||||
common.attrs.aria.role.tab |= aria.tab
|
||||
|
||||
## tablist
|
||||
aria.tablist =
|
||||
@@ -918,6 +991,8 @@ common.attrs.aria.implicit.listitem |=
|
||||
)
|
||||
aria.role.tablist =
|
||||
attribute role { string "tablist" }
|
||||
common.attrs.aria |= aria.tablist
|
||||
common.attrs.aria.role.tablist |= aria.tablist
|
||||
|
||||
## tabpanel
|
||||
aria.tabpanel =
|
||||
@@ -928,6 +1003,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tabpanel" }
|
||||
|
||||
common.attrs.aria |= aria.tabpanel
|
||||
common.attrs.aria.role.tabpanel |= aria.tabpanel
|
||||
|
||||
## textbox
|
||||
aria.textbox =
|
||||
@@ -940,6 +1016,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "textbox" }
|
||||
|
||||
common.attrs.aria |= aria.textbox
|
||||
common.attrs.aria.role.textbox |= aria.textbox
|
||||
|
||||
## timer
|
||||
aria.timer =
|
||||
@@ -962,6 +1039,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "toolbar" }
|
||||
|
||||
common.attrs.aria |= aria.toolbar
|
||||
common.attrs.aria.role.toolbar |= aria.toolbar
|
||||
|
||||
## tooltip
|
||||
aria.tooltip =
|
||||
@@ -984,6 +1062,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tree" }
|
||||
|
||||
common.attrs.aria |= aria.tree
|
||||
common.attrs.aria.role.tree |= aria.tree
|
||||
|
||||
## treegrid
|
||||
aria.treegrid =
|
||||
@@ -1013,5 +1092,4 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "treeitem" }
|
||||
|
||||
common.attrs.aria |= aria.treeitem
|
||||
|
||||
|
||||
common.attrs.aria.role.treeitem |= aria.treeitem
|
||||
|
||||
@@ -25,7 +25,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
hr.elem =
|
||||
element hr { hr.inner & hr.attrs }
|
||||
hr.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.separator
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
hr.inner =
|
||||
( empty )
|
||||
|
||||
@@ -56,8 +61,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element ul { ul.inner & ul.attrs }
|
||||
ul.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ( ( common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.presentation
|
||||
)
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
ul.inner =
|
||||
@@ -71,9 +85,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element li { li.inner & li.attrs }
|
||||
li.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.listitem
|
||||
)?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
li.inner =
|
||||
( common.inner.flow )
|
||||
@@ -87,8 +99,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& ol.attrs.start?
|
||||
& ol.attrs.reversed?
|
||||
& ol.attrs.type?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ( ( common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.presentation
|
||||
)
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
ol.attrs.start =
|
||||
@@ -115,9 +136,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
oli.attrs =
|
||||
( common.attrs
|
||||
& oli.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.listitem
|
||||
)?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
oli.attrs.value =
|
||||
attribute value {
|
||||
@@ -154,7 +173,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.aria?
|
||||
)
|
||||
dt.inner =
|
||||
( common.inner.phrasing )
|
||||
( common.inner.flow )
|
||||
|
||||
## Definition Description: <dd>
|
||||
|
||||
@@ -183,9 +202,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.aria?
|
||||
)
|
||||
div.inner =
|
||||
( style.elem.scoped*
|
||||
, common.inner.flow
|
||||
)
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= div.elem
|
||||
|
||||
@@ -195,7 +212,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element legend { legend.inner & legend.attrs }
|
||||
legend.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
legend.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -29,6 +29,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## XML features that can't be serialized as HTML
|
||||
nonHTMLizable = empty
|
||||
|
||||
## features that are not part of the W3C HTML spec
|
||||
nonW3C = empty
|
||||
|
||||
# #####################################################################
|
||||
## Wildcards #
|
||||
# #####################################################################
|
||||
@@ -86,8 +89,15 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
## Prose Content
|
||||
|
||||
common.inner.transparent.flow =
|
||||
( text & common.elem.flow* )
|
||||
|
||||
common.inner.flow =
|
||||
( text & common.elem.flow* ) # REVISIT <style scoped>
|
||||
( style.elem.scoped?,
|
||||
( text
|
||||
& common.elem.flow*
|
||||
)
|
||||
)
|
||||
|
||||
# #####################################################################
|
||||
## Common Attributes #
|
||||
@@ -110,7 +120,6 @@ common.attrs.basic =
|
||||
& common.attrs.title?
|
||||
& common.attrs.base?
|
||||
& common.attrs.space?
|
||||
& common.attrs.role?
|
||||
)
|
||||
common.attrs.id =
|
||||
attribute id {
|
||||
@@ -128,10 +137,6 @@ common.attrs.basic =
|
||||
attribute title {
|
||||
text
|
||||
}
|
||||
common.attrs.role =
|
||||
attribute role {
|
||||
text
|
||||
}
|
||||
common.attrs.base =
|
||||
common.attrs.xmlbase
|
||||
& nonRoundtrippable
|
||||
@@ -149,6 +154,7 @@ common.attrs.basic =
|
||||
common.attrs.i18n =
|
||||
( common.attrs.dir?
|
||||
& common.attrs.language?
|
||||
& common.attrs.translate?
|
||||
)
|
||||
common.attrs.dir =
|
||||
attribute dir {
|
||||
@@ -181,6 +187,10 @@ common.attrs.i18n =
|
||||
# attribute xml:lang {
|
||||
# common.data.langcode
|
||||
# } & XMLonly
|
||||
common.attrs.translate =
|
||||
attribute translate {
|
||||
w:string "yes" | w:string "no"
|
||||
}
|
||||
|
||||
common.attrs.present =
|
||||
( common.attrs.style?
|
||||
@@ -233,7 +243,7 @@ common.attrs.other =
|
||||
|
||||
common.data.idref =
|
||||
w:IDREF
|
||||
|
||||
|
||||
common.data.idrefs =
|
||||
w:IDREFS
|
||||
|
||||
@@ -241,7 +251,7 @@ common.attrs.other =
|
||||
w:ID #FIXME
|
||||
|
||||
common.data.hash-name =
|
||||
w:hash-name
|
||||
w:hash-name
|
||||
# xsd:string {
|
||||
# pattern = "#.+"
|
||||
# }
|
||||
@@ -265,12 +275,12 @@ common.attrs.other =
|
||||
# xsd:string {
|
||||
# pattern = "[0-9]+"
|
||||
# }
|
||||
|
||||
|
||||
# common.data.percent =
|
||||
# xsd:string {
|
||||
# pattern = "(100)|([1-9]?[0-9](\.[0-9]+)?)%"
|
||||
# }
|
||||
|
||||
|
||||
common.data.float =
|
||||
w:float
|
||||
# xsd:string {
|
||||
@@ -282,13 +292,13 @@ common.attrs.other =
|
||||
# xsd:string {
|
||||
# pattern = "(0*[1-9][0-9]*(\.[0-9]+)?)|([0-9]+(\.0*[1-9][0-9]*)?)([eE]-?[0-9]+)?"
|
||||
# }
|
||||
|
||||
|
||||
common.data.float.non-negative =
|
||||
w:float-non-negative
|
||||
# xsd:string {
|
||||
# pattern = "[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?"
|
||||
# }
|
||||
|
||||
|
||||
## Temporal
|
||||
|
||||
common.data.datetime =
|
||||
@@ -300,6 +310,9 @@ common.attrs.other =
|
||||
common.data.date =
|
||||
w:date
|
||||
|
||||
common.data.time-datetime =
|
||||
w:time-datetime
|
||||
|
||||
## IRIs
|
||||
|
||||
common.data.uri =
|
||||
@@ -389,7 +402,7 @@ common.attrs.other =
|
||||
# #####################################################################
|
||||
## WF2 Module Hook #
|
||||
# #####################################################################
|
||||
|
||||
|
||||
common-form.attrs.form = ( notAllowed )
|
||||
|
||||
# #####################################################################
|
||||
@@ -397,6 +410,50 @@ common-form.attrs.form = ( notAllowed )
|
||||
# #####################################################################
|
||||
|
||||
common.attrs.aria = ( notAllowed )
|
||||
common.attrs.aria.role.alert = ( notAllowed )
|
||||
common.attrs.aria.role.alertdialog = ( notAllowed )
|
||||
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.checkbox = ( notAllowed )
|
||||
common.attrs.aria.role.combobox = ( notAllowed )
|
||||
common.attrs.aria.role.complementary = ( notAllowed )
|
||||
common.attrs.aria.role.contentinfo = ( notAllowed )
|
||||
common.attrs.aria.role.dialog = ( notAllowed )
|
||||
common.attrs.aria.role.directory = ( notAllowed )
|
||||
common.attrs.aria.role.document = ( notAllowed )
|
||||
common.attrs.aria.role.heading = ( notAllowed )
|
||||
common.attrs.aria.role.img = ( notAllowed )
|
||||
common.attrs.aria.role.link = ( notAllowed )
|
||||
common.attrs.aria.role.list = ( notAllowed )
|
||||
common.attrs.aria.role.listitem = ( notAllowed )
|
||||
common.attrs.aria.role.log = ( notAllowed )
|
||||
common.attrs.aria.role.listbox = ( notAllowed )
|
||||
common.attrs.aria.role.main = ( notAllowed )
|
||||
common.attrs.aria.role.marquee = ( notAllowed )
|
||||
common.attrs.aria.role.menu = ( notAllowed )
|
||||
common.attrs.aria.role.menubar = ( notAllowed )
|
||||
common.attrs.aria.role.menuitem = ( notAllowed )
|
||||
common.attrs.aria.role.menuitemcheckbox = ( notAllowed )
|
||||
common.attrs.aria.role.menuitemradio = ( notAllowed )
|
||||
common.attrs.aria.role.note = ( notAllowed )
|
||||
common.attrs.aria.role.option = ( notAllowed )
|
||||
common.attrs.aria.role.presentation = ( notAllowed )
|
||||
common.attrs.aria.role.progressbar = ( notAllowed )
|
||||
common.attrs.aria.role.radio = ( notAllowed )
|
||||
common.attrs.aria.role.region = ( notAllowed )
|
||||
common.attrs.aria.role.search = ( 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.tab = ( notAllowed )
|
||||
common.attrs.aria.role.tablist = ( notAllowed )
|
||||
common.attrs.aria.role.textbox = ( notAllowed )
|
||||
common.attrs.aria.role.toolbar = ( notAllowed )
|
||||
common.attrs.aria.role.tree = ( notAllowed )
|
||||
common.attrs.aria.role.treeitem = ( notAllowed )
|
||||
common.attrs.aria.implicit.button = ( notAllowed )
|
||||
common.attrs.aria.implicit.input = ( notAllowed )
|
||||
common.attrs.aria.implicit.region = ( notAllowed )
|
||||
@@ -407,6 +464,7 @@ common.attrs.aria.implicit.link = ( notAllowed )
|
||||
common.attrs.aria.implicit.listitem = ( notAllowed )
|
||||
common.attrs.aria.implicit.img = ( notAllowed )
|
||||
common.attrs.aria.implicit.select = ( notAllowed )
|
||||
common.attrs.aria.prop.readonly = ( notAllowed )
|
||||
common.attrs.aria.landmark.application = ( notAllowed )
|
||||
common.attrs.aria.landmark.banner = ( notAllowed )
|
||||
common.attrs.aria.landmark.complementary = ( notAllowed )
|
||||
@@ -417,4 +475,4 @@ common.attrs.aria.landmark.search = ( notAllowed )
|
||||
# per ARIA spec: article, document, and note are not actually landmarks
|
||||
common.attrs.aria.landmark.article = ( notAllowed )
|
||||
common.attrs.aria.landmark.document = ( notAllowed )
|
||||
common.attrs.aria.landmark.note = ( notAllowed )
|
||||
common.attrs.aria.landmark.note = ( notAllowed )
|
||||
|
||||
@@ -15,6 +15,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& script.attrs.type?
|
||||
& script.attrs.language? # restricted in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
script.elem.imported =
|
||||
element script { script.inner.imported & script.attrs.imported }
|
||||
@@ -26,6 +29,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& script.attrs.type?
|
||||
& script.attrs.charset?
|
||||
& script.attrs.language? # restricted in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
script.attrs.src =
|
||||
attribute src {
|
||||
@@ -86,7 +92,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
noscript.inner.flow =
|
||||
( common.inner.flow )
|
||||
noscript.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
|
||||
common.elem.metadata |= noscript.elem.head
|
||||
common.elem.phrasing |= noscript.elem.phrasing
|
||||
@@ -136,7 +146,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& scripting.attr.onplaying?
|
||||
& scripting.attr.onprogress?
|
||||
& scripting.attr.onratechange?
|
||||
& scripting.attr.onreadystatechange?
|
||||
& scripting.attr.onreset?
|
||||
& scripting.attr.onscroll?
|
||||
& scripting.attr.onseeked?
|
||||
@@ -237,8 +246,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
attribute onprogress { common.data.functionbody }
|
||||
scripting.attr.onratechange =
|
||||
attribute onratechange { common.data.functionbody }
|
||||
scripting.attr.onreadystatechange =
|
||||
attribute onreadystatechange { common.data.functionbody }
|
||||
scripting.attr.onreset =
|
||||
attribute onreset { common.data.functionbody }
|
||||
scripting.attr.onscroll =
|
||||
|
||||
@@ -10,19 +10,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element time { time.inner & time.attrs }
|
||||
time.attrs =
|
||||
( common.attrs
|
||||
& ( time.attrs.datetime?
|
||||
|
|
||||
(
|
||||
( time.attrs.datetime.dateonly?
|
||||
| time.attrs.datetime.tz?
|
||||
)
|
||||
& time.attrs.pubdate
|
||||
)
|
||||
)
|
||||
& time.attrs.datetime?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
time.attrs.datetime =
|
||||
attribute datetime {
|
||||
common.data.date-or-time #REVISIT check format
|
||||
common.data.time-datetime
|
||||
}
|
||||
time.attrs.datetime.dateonly =
|
||||
attribute datetime {
|
||||
@@ -32,10 +27,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
attribute datetime {
|
||||
common.data.datetime
|
||||
}
|
||||
time.attrs.pubdate =
|
||||
attribute pubdate {
|
||||
w:string "pubdate" | w:string ""
|
||||
}
|
||||
time.inner =
|
||||
( common.inner.phrasing ) #Cannot enforce textContent format here
|
||||
|
||||
@@ -53,6 +44,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& meter.attrs.high?
|
||||
& meter.attrs.max?
|
||||
& meter.attrs.optimum?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meter.attrs.value =
|
||||
attribute value {
|
||||
|
||||
@@ -15,12 +15,12 @@ namespace local = ""
|
||||
img.attrs =
|
||||
( common.attrs
|
||||
& img.attrs.src
|
||||
& img.attrs.alt?
|
||||
& img.attrs.alt? # ARIA: if alt empty, only allowed role value is "presentation"; check in assertions
|
||||
& img.attrs.height?
|
||||
& img.attrs.width?
|
||||
& img.attrs.usemap?
|
||||
& img.attrs.ismap?
|
||||
& img.attrs.border? # obsolete
|
||||
& img.attrs.border? # obsolete
|
||||
& common.attrs.aria?
|
||||
)
|
||||
img.attrs.src =
|
||||
@@ -67,6 +67,10 @@ namespace local = ""
|
||||
& embed.attrs.height?
|
||||
& embed.attrs.width?
|
||||
& embed.attrs.other*
|
||||
& ( common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
embed.attrs.src =
|
||||
attribute src {
|
||||
@@ -94,6 +98,7 @@ namespace local = ""
|
||||
| title
|
||||
| dir
|
||||
| lang
|
||||
| translate
|
||||
| style
|
||||
| tabindex
|
||||
| contextmenu
|
||||
@@ -141,7 +146,6 @@ namespace local = ""
|
||||
| onplaying
|
||||
| onprogress
|
||||
| onratechange
|
||||
| onreadystatechange
|
||||
| onreset
|
||||
| onscroll
|
||||
| onseeked
|
||||
@@ -174,6 +178,7 @@ namespace local = ""
|
||||
| aria-describedby
|
||||
| aria-disabled
|
||||
| aria-dropeffect
|
||||
| aria-expanded
|
||||
| aria-flowto
|
||||
| aria-grabbed
|
||||
| aria-haspopup
|
||||
@@ -184,7 +189,7 @@ namespace local = ""
|
||||
| aria-live
|
||||
| aria-owns
|
||||
| aria-relevant
|
||||
| aria-required
|
||||
| aria-required
|
||||
| spellcheck
|
||||
| accesskey
|
||||
| itemref
|
||||
@@ -194,6 +199,64 @@ namespace local = ""
|
||||
| itemid
|
||||
| name
|
||||
| align
|
||||
| about
|
||||
| prefix
|
||||
| property
|
||||
| typeof
|
||||
| vocab
|
||||
| content
|
||||
| datatype
|
||||
| href
|
||||
| rel
|
||||
| resource
|
||||
| rev
|
||||
| inlist
|
||||
| its-loc-note
|
||||
| its-loc-note-type
|
||||
| its-loc-note-ref
|
||||
| its-term-info-ref
|
||||
| its-term
|
||||
| its-term-confidence
|
||||
| its-within-text
|
||||
| its-domain-mapping
|
||||
| its-disambig-granularity
|
||||
| its-disambig-confidence
|
||||
| its-disambig-class-ref
|
||||
| its-disambig-ident
|
||||
| its-disambig-ident-ref
|
||||
| its-disambig-source
|
||||
| its-locale-filter-list
|
||||
| its-person
|
||||
| its-person-ref
|
||||
| its-org
|
||||
| its-org-ref
|
||||
| its-tool
|
||||
| its-tool-ref
|
||||
| its-rev-person
|
||||
| its-rev-person-ref
|
||||
| its-rev-org
|
||||
| its-rev-org-ref
|
||||
| its-rev-tool
|
||||
| its-rev-tool-ref
|
||||
| its-prov-ref
|
||||
| its-provenance-records-ref
|
||||
| its-loc-quality-issues-ref
|
||||
| its-loc-quality-issue-type
|
||||
| its-loc-quality-issue-comment
|
||||
| its-loc-quality-issue-severity
|
||||
| its-loc-quality-issue-profile-ref
|
||||
| its-loc-quality-issue-enabled
|
||||
| its-loc-quality-rating-score
|
||||
| its-loc-quality-rating-vote
|
||||
| its-loc-quality-rating-score-threshold
|
||||
| its-loc-quality-rating-vote-threshold
|
||||
| its-loc-quality-rating-profile-ref
|
||||
| its-mt-confidence
|
||||
| its-allowed-characters
|
||||
| its-storage-size
|
||||
| its-storage-encoding
|
||||
| its-line-break-type
|
||||
| its-annotators-ref
|
||||
)
|
||||
{
|
||||
string
|
||||
@@ -224,7 +287,11 @@ namespace local = ""
|
||||
& object.attrs.usemap?
|
||||
& object.attrs.name?
|
||||
& common-form.attrs.form?
|
||||
& common.attrs.aria?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
object.attrs.data =
|
||||
attribute data {
|
||||
@@ -252,7 +319,7 @@ namespace local = ""
|
||||
}
|
||||
object.inner.flow =
|
||||
( param.elem*
|
||||
, common.inner.flow
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
object.inner.phrasing =
|
||||
( param.elem*
|
||||
@@ -270,6 +337,9 @@ namespace local = ""
|
||||
( common.attrs
|
||||
& param.attrs.name
|
||||
& param.attrs.value
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
param.attrs.name =
|
||||
attribute name {
|
||||
@@ -295,8 +365,11 @@ namespace local = ""
|
||||
& iframe.attrs.height?
|
||||
& iframe.attrs.sandbox?
|
||||
& iframe.attrs.seamless?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& iframe.attrs.allowfullscreen?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
iframe.attrs.src =
|
||||
@@ -470,6 +543,10 @@ namespace local = ""
|
||||
, ( w:string "allow-top-navigation" )?
|
||||
}
|
||||
} & v5only
|
||||
iframe.attrs.allowfullscreen =
|
||||
attribute allowfullscreen {
|
||||
w:string "allowfullscreen" | w:string ""
|
||||
} & v5only
|
||||
iframe.inner =
|
||||
( text )
|
||||
|
||||
@@ -487,13 +564,16 @@ namespace local = ""
|
||||
map.attrs =
|
||||
( common.attrs
|
||||
& map.attrs.name
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
) # REVISIT make id required in Schematron
|
||||
map.attrs.name =
|
||||
attribute name {
|
||||
common.data.name
|
||||
}
|
||||
map.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
map.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -505,7 +585,10 @@ namespace local = ""
|
||||
area.elem =
|
||||
element area { area.inner & area.attrs }
|
||||
area.attrs =
|
||||
( common.attrs
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( area.attrs.alt
|
||||
& shared-hyperlink.attrs.href
|
||||
)?
|
||||
@@ -516,6 +599,10 @@ namespace local = ""
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& area.attrs.shape?
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
area.attrs.alt =
|
||||
attribute alt {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
default namespace = "http://www.w3.org/1999/html"
|
||||
default namespace = "http://www.w3.org/1999/xhtml"
|
||||
# #####################################################################
|
||||
## RELAX NG Schema for HTML 5 #
|
||||
# #####################################################################
|
||||
|
||||
@@ -49,6 +49,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& source.attrs.src
|
||||
& source.attrs.type?
|
||||
& source.attrs.media?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
source.attrs.src =
|
||||
attribute src {
|
||||
@@ -65,7 +68,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
source.inner =
|
||||
( empty )
|
||||
|
||||
## Media src attribute
|
||||
## Media Source
|
||||
|
||||
media.source =
|
||||
( media.attrs.src
|
||||
| source.elem*
|
||||
)
|
||||
|
||||
media.attrs.src =
|
||||
attribute src {
|
||||
@@ -84,6 +92,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& video.attrs.poster?
|
||||
& video.attrs.height?
|
||||
& video.attrs.width?
|
||||
& common.attrs.aria.landmark.application?
|
||||
)
|
||||
video.attrs.poster =
|
||||
attribute poster {
|
||||
@@ -98,19 +107,15 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
common.data.integer.non-negative
|
||||
}
|
||||
video.inner.flow =
|
||||
( video.source
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.flow
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
video.inner.phrasing =
|
||||
( video.source
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.phrasing
|
||||
)
|
||||
video.source =
|
||||
( media.attrs.src
|
||||
| source.elem*
|
||||
)
|
||||
|
||||
common.elem.flow |= video.elem.flow
|
||||
common.elem.phrasing |= video.elem.phrasing
|
||||
@@ -124,21 +129,18 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
audio.attrs =
|
||||
( common.attrs
|
||||
& media.attrs
|
||||
& common.attrs.aria.landmark.application?
|
||||
)
|
||||
audio.inner.flow =
|
||||
( audio.source
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.flow
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
audio.inner.phrasing =
|
||||
( audio.source
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.phrasing
|
||||
)
|
||||
audio.source =
|
||||
( media.attrs.src
|
||||
| source.elem+
|
||||
)
|
||||
|
||||
common.elem.flow |= audio.elem.flow
|
||||
common.elem.phrasing |= audio.elem.phrasing
|
||||
@@ -155,6 +157,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& track.attrs.srclang?
|
||||
& track.attrs.label?
|
||||
& track.attrs.default?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
track.attrs.kind =
|
||||
attribute kind {
|
||||
@@ -186,10 +191,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element figure { figure.inner & figure.attrs }
|
||||
figure.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.img?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
figure.inner =
|
||||
( ( figcaption.elem, common.inner.flow )
|
||||
( ( figcaption.elem?, common.inner.flow )
|
||||
| ( common.inner.flow, figcaption.elem? )
|
||||
)
|
||||
|
||||
@@ -200,6 +205,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
figcaption.elem =
|
||||
element figcaption { figcaption.inner & figcaption.attrs }
|
||||
figcaption.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
figcaption.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -9,7 +9,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
html.elem =
|
||||
element html { html.inner & html.attrs }
|
||||
html.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
html.inner =
|
||||
( head.elem
|
||||
, body.elem
|
||||
@@ -22,6 +26,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
head.attrs =
|
||||
( common.attrs
|
||||
# & head.attrs.profile?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
# head.attrs.profile =
|
||||
# attribute profile {
|
||||
@@ -49,6 +56,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& ( common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
& body.attrs.onafterprint?
|
||||
& body.attrs.onbeforeprint?
|
||||
@@ -57,11 +65,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& body.attrs.onmessage?
|
||||
& body.attrs.onoffline?
|
||||
& body.attrs.ononline?
|
||||
& body.attrs.onpagehide?
|
||||
& body.attrs.onpageshow?
|
||||
& body.attrs.onpopstate?
|
||||
& body.attrs.onredo?
|
||||
& body.attrs.onresize?
|
||||
& body.attrs.onstorage?
|
||||
& body.attrs.onundo?
|
||||
& body.attrs.onunload?
|
||||
)
|
||||
body.inner =
|
||||
@@ -83,6 +91,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
attribute ononline { common.data.functionbody }
|
||||
body.attrs.onpopstate =
|
||||
attribute onpopstate { common.data.functionbody }
|
||||
body.attrs.onpagehide =
|
||||
attribute onpagehide { common.data.functionbody }
|
||||
body.attrs.onpageshow =
|
||||
attribute onpageshow { common.data.functionbody }
|
||||
body.attrs.onredo =
|
||||
attribute onredo { common.data.functionbody }
|
||||
body.attrs.onresize =
|
||||
@@ -99,7 +111,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
title.elem =
|
||||
element title { title.inner & title.attrs }
|
||||
title.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
title.inner =
|
||||
( text )
|
||||
|
||||
@@ -108,12 +124,18 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
base.elem =
|
||||
element base { base.inner & base.attrs }
|
||||
base.attrs =
|
||||
( common.attrs
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( ( base.attrs.href
|
||||
& base.attrs.target?
|
||||
)
|
||||
| base.attrs.target
|
||||
)
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
base.attrs.href =
|
||||
attribute href {
|
||||
@@ -135,19 +157,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& common.attrs.microdata.itemref?
|
||||
& common.attrs.microdata.itemscope?
|
||||
& common.attrs.microdata.itemtype?
|
||||
& common.attrs.microdata.itemid?
|
||||
& link.attrs.href
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.microdata.itemprop
|
||||
)
|
||||
& link.attrs.rel
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
link.attrs.href =
|
||||
attribute href {
|
||||
@@ -175,6 +195,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& style.attrs.type?
|
||||
& style.attrs.media?
|
||||
# style.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
style.attrs.type =
|
||||
attribute type {
|
||||
@@ -199,6 +222,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& style.attrs.media?
|
||||
& style.attrs.scoped
|
||||
# style.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
style.attrs.scoped =
|
||||
attribute scoped {
|
||||
@@ -216,6 +242,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.name.attrs.name
|
||||
& meta.name.attrs.content
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.name.attrs.name =
|
||||
attribute name {
|
||||
@@ -241,6 +270,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.refresh
|
||||
& meta.http-equiv.attrs.content.refresh
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.refresh =
|
||||
attribute http-equiv {
|
||||
@@ -265,6 +297,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.default-style
|
||||
& meta.http-equiv.attrs.content.default-style
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.default-style =
|
||||
attribute http-equiv {
|
||||
@@ -289,6 +324,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& meta.charset.attrs.charset
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.charset.attrs.charset =
|
||||
attribute charset {
|
||||
@@ -310,6 +348,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.content-type
|
||||
& meta.http-equiv.attrs.content.content-type
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.content-type =
|
||||
attribute http-equiv {
|
||||
|
||||
@@ -34,6 +34,10 @@ common.attrs.microdata =
|
||||
|
||||
common.attrs &= common.attrs.microdata
|
||||
|
||||
a.attrs &= common.attrs.microdata
|
||||
area.attrs &= common.attrs.microdata
|
||||
base.attrs &= common.attrs.microdata
|
||||
|
||||
## URL-valued Property Metadata: <link itemprop>
|
||||
|
||||
link.elem.phrasing =
|
||||
@@ -54,9 +58,21 @@ common.attrs &= common.attrs.microdata
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
common.elem.phrasing |= link.elem.phrasing
|
||||
|
||||
## <link> element in head, extensions
|
||||
|
||||
link.attrs.rel |= common.attrs.microdata.itemprop
|
||||
link.attrs &= common.attrs.microdata.itemref?
|
||||
link.attrs &= common.attrs.microdata.itemscope?
|
||||
link.attrs &= common.attrs.microdata.itemtype?
|
||||
link.attrs &= common.attrs.microdata.itemid?
|
||||
|
||||
## Property Metadata: <meta itemprop>
|
||||
|
||||
meta.itemprop.elem =
|
||||
@@ -72,6 +88,9 @@ common.attrs &= common.attrs.microdata
|
||||
& common.attrs.microdata.itemtype?
|
||||
& common.attrs.microdata.itemid?
|
||||
& meta.itemprop.attrs.content
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.itemprop.attrs.content =
|
||||
attribute content {
|
||||
|
||||
@@ -11,8 +11,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
a.elem.flow =
|
||||
element a { a.inner.flow & a.attrs }
|
||||
a.attrs =
|
||||
( common.attrs
|
||||
& a.attrs.name?
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& a.attrs.name?
|
||||
& shared-hyperlink.attrs.href?
|
||||
& shared-hyperlink.attrs.target?
|
||||
& shared-hyperlink.attrs.rel?
|
||||
@@ -20,8 +23,16 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& shared-hyperlink.attrs.ping?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.link
|
||||
& ( ( common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.checkbox
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.treeitem
|
||||
)
|
||||
| common.attrs.aria.implicit.link
|
||||
)?
|
||||
)
|
||||
a.attrs.name =
|
||||
@@ -31,7 +42,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
a.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
a.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
|
||||
common.elem.phrasing |= a.elem.phrasing
|
||||
common.elem.flow |= a.elem.flow
|
||||
@@ -65,7 +76,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
shared-hyperlink.attrs.ping =
|
||||
attribute ping {
|
||||
common.data.uris
|
||||
} & v5only
|
||||
} & v5only & nonW3C
|
||||
|
||||
## Emphatic Stress: <em>
|
||||
|
||||
@@ -112,7 +123,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element mark { mark.inner & mark.attrs }
|
||||
& v5only
|
||||
mark.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
mark.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -255,7 +270,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
sup.elem =
|
||||
element sup { sup.inner & sup.attrs }
|
||||
sup.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
sup.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -266,7 +285,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
sub.elem =
|
||||
element sub { sub.inner & sub.attrs }
|
||||
sub.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
sub.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -321,7 +344,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
bdo.elem =
|
||||
element bdo { bdo.inner & bdo.attrs }
|
||||
bdo.attrs =
|
||||
( common.attrs ) # dir required in Schematron
|
||||
( common.attrs # dir required in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
bdo.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -332,7 +359,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
bdi.elem =
|
||||
element bdi { bdi.inner & bdi.attrs }
|
||||
bdi.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
bdi.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -343,7 +374,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
br.elem =
|
||||
element br { br.inner & br.attrs }
|
||||
br.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
br.inner =
|
||||
( empty )
|
||||
|
||||
@@ -354,7 +389,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
wbr.elem =
|
||||
element wbr { wbr.inner & wbr.attrs }
|
||||
wbr.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
wbr.inner =
|
||||
( empty )
|
||||
|
||||
|
||||
@@ -0,0 +1,240 @@
|
||||
# #####################################################################
|
||||
## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 #
|
||||
# #####################################################################
|
||||
|
||||
# #####################################################################
|
||||
## RDFa Datatypes #
|
||||
# #####################################################################
|
||||
|
||||
common.data.rdfa.safecurie =
|
||||
xsd:string {
|
||||
pattern = "\[(([\i-[:]][\c-[:]]*)?:)?[^\s]+\]"
|
||||
minLength = "3"
|
||||
}
|
||||
common.data.rdfa.curie =
|
||||
xsd:string {
|
||||
pattern = "(([\i-[:]][\c-[:]]*)?:)?[^\s]+"
|
||||
minLength = "1"
|
||||
}
|
||||
common.data.rdfa.term =
|
||||
xsd:string {
|
||||
pattern = "[\i-[:]][/\c-[:]]*"
|
||||
}
|
||||
|
||||
# #####################################################################
|
||||
## RDFa Attributes #
|
||||
# #####################################################################
|
||||
|
||||
common.attrs.rdfa &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.rel?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.prefix =
|
||||
attribute prefix {
|
||||
(
|
||||
xsd:string {
|
||||
pattern = "([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*"
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.property =
|
||||
attribute property {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.resource =
|
||||
attribute resource {
|
||||
( common.data.rdfa.safecurie
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.typeof =
|
||||
attribute typeof {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.vocab =
|
||||
attribute vocab {
|
||||
( common.data.uri.absolute
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.about =
|
||||
attribute about {
|
||||
( common.data.rdfa.safecurie
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.content =
|
||||
attribute content {
|
||||
string
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.datatype =
|
||||
attribute datatype {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.rel =
|
||||
attribute rel {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.rev =
|
||||
attribute rev {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.inlist =
|
||||
attribute inlist {
|
||||
string
|
||||
} & nonRDFaLite
|
||||
|
||||
common.attrs.rdfa.no-rel &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.no-rel-rev &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.no-content-noproperty &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
|
||||
common.attrs &= common.attrs.rdfa
|
||||
|
||||
a.attrs &= common.attrs.rdfa.no-rel-rev
|
||||
area.attrs &= common.attrs.rdfa.no-rel
|
||||
base.attrs &= common.attrs.rdfa.no-rel
|
||||
|
||||
link.rdfa.elem.metadata =
|
||||
element link { link.inner & link.rdfa.attrs.metadata }
|
||||
link.rdfa.elem.phrasing =
|
||||
element link { link.inner & link.rdfa.attrs.phrasing }
|
||||
link.rdfa.attrs.metadata =
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( ( common.attrs.rdfa.property
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)?
|
||||
)
|
||||
|
|
||||
( common.attrs.rdfa.property?
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)
|
||||
)
|
||||
)
|
||||
& link.attrs.href
|
||||
& common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
)
|
||||
link.rdfa.attrs.phrasing =
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& common.attrs.rdfa.property
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)?
|
||||
& link.attrs.href
|
||||
& common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
)
|
||||
common.elem.metadata |= link.rdfa.elem.metadata
|
||||
common.elem.phrasing |= link.rdfa.elem.phrasing
|
||||
|
||||
meta.name.attrs.name |= common.attrs.rdfa.property
|
||||
meta.name.attrs &= common.attrs.rdfa.no-content-noproperty
|
||||
@@ -23,9 +23,12 @@
|
||||
( common.attrs
|
||||
& edit.attrs.cite?
|
||||
& edit.attrs.datetime?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
ins.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
ins.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -42,9 +45,12 @@
|
||||
( common.attrs
|
||||
& edit.attrs.cite?
|
||||
& edit.attrs.datetime?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
del.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
del.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
element h1 { h1.inner & h1.attrs }
|
||||
h1.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h1.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -24,7 +28,11 @@
|
||||
element h2 { h2.inner & h2.attrs }
|
||||
h2.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h2.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -37,7 +45,11 @@
|
||||
element h3 { h3.inner & h3.attrs }
|
||||
h3.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h3.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -50,7 +62,11 @@
|
||||
element h4 { h4.inner & h4.attrs }
|
||||
h4.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h4.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -63,7 +79,11 @@
|
||||
element h5 { h5.inner & h5.attrs }
|
||||
h5.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h5.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -76,7 +96,11 @@
|
||||
element h6 { h6.inner & h6.attrs }
|
||||
h6.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h6.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -89,7 +113,11 @@
|
||||
element hgroup { hgroup.inner & hgroup.attrs }
|
||||
hgroup.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure # not implementing "aria-level property set to the element's outline depth", nor heading role; see http://hsivonen.iki.fi/aria-html5-bis/
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
hgroup.inner =
|
||||
( h1.elem
|
||||
@@ -111,7 +139,10 @@
|
||||
element address { address.inner & address.attrs }
|
||||
address.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
address.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -8,14 +8,24 @@
|
||||
element section { section.inner & section.attrs }
|
||||
section.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.alert
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.main
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.region
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
section.inner =
|
||||
( style.elem.scoped*
|
||||
, common.inner.flow
|
||||
)
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= section.elem
|
||||
|
||||
@@ -25,9 +35,11 @@
|
||||
element nav { nav.inner & nav.attrs }
|
||||
nav.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.navigation
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.navigation
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
nav.inner =
|
||||
( common.inner.flow )
|
||||
@@ -40,12 +52,13 @@
|
||||
element article { article.inner & article.attrs }
|
||||
article.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.application
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
article.inner =
|
||||
( style.elem*
|
||||
@@ -60,11 +73,12 @@
|
||||
element aside { aside.inner & aside.attrs }
|
||||
aside.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.search
|
||||
| common.attrs.aria.landmark.note
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.note
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.search
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
aside.inner =
|
||||
( style.elem*
|
||||
@@ -79,9 +93,10 @@
|
||||
element header { header.inner & header.attrs }
|
||||
header.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.banner
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.banner
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
header.inner =
|
||||
( common.inner.flow )
|
||||
@@ -94,12 +109,27 @@
|
||||
element footer { footer.inner & footer.attrs }
|
||||
footer.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
footer.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= footer.elem
|
||||
|
||||
## main content: <main>
|
||||
|
||||
main.elem =
|
||||
element main { main.inner & main.attrs }
|
||||
main.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.main
|
||||
)?
|
||||
)
|
||||
main.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= main.elem
|
||||
|
||||
@@ -78,7 +78,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element caption { caption.inner & caption.attrs }
|
||||
caption.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
caption.inner =
|
||||
( common.inner.flow )
|
||||
@@ -91,7 +94,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
colgroup.elem =
|
||||
element colgroup { colgroup.inner & colgroup.attrs }
|
||||
colgroup.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
colgroup.attrs.span =
|
||||
attribute span {
|
||||
common.data.integer.positive
|
||||
@@ -108,6 +115,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
col.attrs =
|
||||
( common.attrs
|
||||
& col.attrs.span?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
col.attrs.span =
|
||||
attribute span {
|
||||
@@ -121,7 +131,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
thead.elem =
|
||||
element thead { thead.inner & thead.attrs }
|
||||
thead.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
thead.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -130,7 +144,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
tfoot.elem =
|
||||
element tfoot { tfoot.inner & tfoot.attrs }
|
||||
tfoot.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
tfoot.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -139,7 +157,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
tbody.elem =
|
||||
element tbody { tbody.inner & tbody.attrs }
|
||||
tbody.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
tbody.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -218,7 +240,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& tables.attrs.scope?
|
||||
& tables.attrs.headers?
|
||||
# & tables.attrs.alignment
|
||||
& common.attrs.aria.implicit.th?
|
||||
& ( common.attrs.aria.implicit.th
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
th.inner =
|
||||
( common.inner.phrasing )
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -54,10 +54,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.text.attrs.type?
|
||||
& shared-form.attrs.maxlength?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.size?
|
||||
& input.text.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.input
|
||||
)?
|
||||
)
|
||||
@@ -84,7 +84,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.size?
|
||||
& input.password.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.password.attrs.type =
|
||||
attribute type {
|
||||
@@ -107,7 +107,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.checkbox.attrs.type
|
||||
& input.attrs.checked?
|
||||
& input.checkbox.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.checkbox.attrs.type =
|
||||
attribute type {
|
||||
@@ -130,7 +130,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.radio.attrs.type
|
||||
& input.attrs.checked?
|
||||
& input.radio.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.role.radio
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
)?
|
||||
)
|
||||
input.radio.attrs.type =
|
||||
attribute type {
|
||||
@@ -152,8 +154,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.button.attrs.type
|
||||
& input.button.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
input.button.attrs.type =
|
||||
@@ -177,7 +184,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.submit.attrs.type
|
||||
& input.submit.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.submit.attrs.type =
|
||||
attribute type {
|
||||
@@ -199,7 +206,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.reset.attrs.type
|
||||
& input.reset.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.reset.attrs.type =
|
||||
attribute type {
|
||||
@@ -222,7 +229,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.file.attrs.type
|
||||
& input.file.attrs.accept?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.file.attrs.type =
|
||||
attribute type {
|
||||
@@ -244,6 +251,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.hidden.attrs.type
|
||||
& input.hidden.attrs.value?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.hidden.attrs.type =
|
||||
attribute type {
|
||||
@@ -266,8 +274,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.image.attrs.type
|
||||
& input.image.attrs.alt
|
||||
& input.image.attrs.src?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
input.image.attrs.type =
|
||||
@@ -296,7 +309,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& shared-form.attrs.readonly?
|
||||
& textarea.attrs.rows-and-cols-wf1
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.implicit.input
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.combobox
|
||||
| common.attrs.aria.role.textbox
|
||||
)?
|
||||
#FIXME onfocus, onblur, onselect,onchange
|
||||
)
|
||||
# This is ugly.
|
||||
@@ -333,7 +351,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& option.attrs.selected?
|
||||
& option.attrs.label?
|
||||
& option.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.implicit.input
|
||||
| common.attrs.aria.role.option
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
)?
|
||||
)
|
||||
option.attrs.selected =
|
||||
attribute selected {
|
||||
@@ -358,6 +381,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& optgroup.attrs.label
|
||||
& common-form.attrs.disabled?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
optgroup.attrs.label =
|
||||
attribute label {
|
||||
@@ -369,13 +395,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Selection Menu: <select>
|
||||
|
||||
select.elem =
|
||||
element select { select.inner & select.attrs }
|
||||
element select { select.inner & select.attrs }
|
||||
select.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
& select.attrs.size?
|
||||
& select.attrs.multiple?
|
||||
# FIXME onfocus, onblur, onchange
|
||||
& ( common.attrs.aria.role.listbox # aria-multiselectable depends on "multiple" value; check in assertions
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
select.attrs.size =
|
||||
attribute size {
|
||||
@@ -410,7 +440,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.submit.attrs.type?
|
||||
& button.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.submit.attrs.type =
|
||||
attribute type {
|
||||
@@ -428,7 +465,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.reset.attrs.type
|
||||
& button.attrs.value? #REVISIT I guess this still affects the DOM
|
||||
& common.attrs.aria.implicit.button?
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.reset.attrs.type =
|
||||
attribute type {
|
||||
@@ -446,8 +490,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.button.attrs.type
|
||||
& button.attrs.value? #REVISIT I guess this still affects the DOM
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.button.attrs.type =
|
||||
@@ -470,7 +519,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& form.attrs.enctype?
|
||||
& common-form.attrs.name?
|
||||
& form.attrs.accept-charset?
|
||||
& ( common.attrs.aria
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
@@ -507,7 +556,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element fieldset { fieldset.inner & fieldset.attrs }
|
||||
fieldset.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.group?
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
fieldset.inner =
|
||||
( legend.elem? #REVISIT should this be required?
|
||||
@@ -523,7 +574,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
label.attrs =
|
||||
( common.attrs
|
||||
& label.attrs.for?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
label.attrs.for =
|
||||
attribute for {
|
||||
|
||||
@@ -194,7 +194,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Global Date and Time: <input type='datetime'>
|
||||
|
||||
input.datetime.elem =
|
||||
element input { input.datetime.attrs }
|
||||
element input { input.datetime.attrs }
|
||||
input.datetime.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -208,7 +208,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.datetime.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.datetime.attrs.type =
|
||||
attribute type {
|
||||
@@ -224,7 +224,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.datetime.attrs.value =
|
||||
attribute value {
|
||||
common.data.datetime
|
||||
w:string "" | common.data.datetime
|
||||
}
|
||||
|
||||
input.elem |= input.datetime.elem
|
||||
@@ -246,7 +246,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.datetime-local.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.datetime-local.attrs.type =
|
||||
attribute type {
|
||||
@@ -262,7 +262,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.datetime-local.attrs.value =
|
||||
attribute value {
|
||||
form.data.datetime-local
|
||||
w:string "" | form.data.datetime-local
|
||||
}
|
||||
|
||||
input.elem |= input.datetime-local.elem
|
||||
@@ -284,7 +284,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.date.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.date.attrs.type =
|
||||
attribute type {
|
||||
@@ -300,7 +300,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.date.attrs.value =
|
||||
attribute value {
|
||||
form.data.date
|
||||
w:string "" | form.data.date
|
||||
}
|
||||
|
||||
input.elem |= input.date.elem
|
||||
@@ -322,7 +322,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.month.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.month.attrs.type =
|
||||
attribute type {
|
||||
@@ -338,7 +338,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.month.attrs.value =
|
||||
attribute value {
|
||||
form.data.month
|
||||
w:string "" | form.data.month
|
||||
}
|
||||
|
||||
input.elem |= input.month.elem
|
||||
@@ -360,7 +360,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.time.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.time.attrs.type =
|
||||
attribute type {
|
||||
@@ -376,7 +376,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.time.attrs.value =
|
||||
attribute value {
|
||||
form.data.time
|
||||
w:string "" | form.data.time
|
||||
}
|
||||
|
||||
input.elem |= input.time.elem
|
||||
@@ -398,7 +398,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.week.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.week.attrs.type =
|
||||
attribute type {
|
||||
@@ -414,7 +414,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.week.attrs.value =
|
||||
attribute value {
|
||||
form.data.week
|
||||
w:string "" | form.data.week
|
||||
}
|
||||
|
||||
input.elem |= input.week.elem
|
||||
@@ -435,8 +435,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.attrs.step.float?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.number.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.number.attrs.type =
|
||||
attribute type {
|
||||
@@ -452,7 +453,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.number.attrs.value =
|
||||
attribute value {
|
||||
common.data.float
|
||||
w:string "" | common.data.float
|
||||
}
|
||||
|
||||
input.elem |= input.number.elem
|
||||
@@ -472,7 +473,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.range.attrs.max?
|
||||
& input.attrs.step.float?
|
||||
& input.range.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.range.attrs.type =
|
||||
attribute type {
|
||||
@@ -515,7 +516,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
)
|
||||
| input.email.attrs.value.single?
|
||||
)?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.email.attrs.type =
|
||||
attribute type {
|
||||
@@ -535,7 +536,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## IRI: <input type='url'>
|
||||
|
||||
input.url.elem =
|
||||
element input { input.url.attrs }
|
||||
element input { input.url.attrs }
|
||||
input.url.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -550,7 +551,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.size?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.url.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.url.attrs.type =
|
||||
attribute type {
|
||||
@@ -566,7 +567,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Search: <input type='search'>
|
||||
|
||||
input.search.elem =
|
||||
element input { input.search.attrs }
|
||||
element input { input.search.attrs }
|
||||
input.search.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -582,7 +583,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.placeholder?
|
||||
& shared-form.attrs.dirname?
|
||||
& input.search.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.search.attrs.type =
|
||||
attribute type {
|
||||
@@ -613,7 +614,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.size?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.tel.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.tel.attrs.type =
|
||||
attribute type {
|
||||
@@ -638,7 +639,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.autofocus?
|
||||
& input.attrs.list?
|
||||
& input.color.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.color.attrs.type =
|
||||
attribute type {
|
||||
@@ -646,7 +647,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.color.attrs.value =
|
||||
attribute value {
|
||||
form.data.color
|
||||
w:string "" | form.data.color
|
||||
}
|
||||
|
||||
input.elem |= input.color.elem
|
||||
@@ -660,7 +661,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs.name?
|
||||
& common-form.attrs.form?
|
||||
& output.attrs.for?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
output.attrs.for =
|
||||
attribute for {
|
||||
@@ -710,7 +711,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
datalist.inner =
|
||||
( option.elem* & common.inner.phrasing )
|
||||
datalist.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.listbox # aria-multiselectable must be false; check by assertions
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
|
||||
common.elem.phrasing |= datalist.elem
|
||||
|
||||
@@ -777,7 +783,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& keygen.attrs.keytype?
|
||||
& shared-form.attrs.autofocus?
|
||||
& common-form.attrs?
|
||||
#REVISIT which ARIA attributes needed here
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
keygen.attrs.challenge =
|
||||
attribute challenge {
|
||||
|
||||
@@ -2,7 +2,7 @@ The RELAX NG Schema for (X)HTML 5 is licensed under the MIT open source license.
|
||||
The following legal notice applies to all files in this directory:
|
||||
|
||||
Copyright (c) 2005-2007 Elika J. Etemad (fantasai) and Henri Sivonen (hsivonen)
|
||||
Copyright (c) 2007-2008 Mozilla Foundation
|
||||
Copyright (c) 2007-2012 Mozilla Foundation
|
||||
|
||||
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
|
||||
|
||||
@@ -10,6 +10,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs.contextmenu?
|
||||
& common.attrs.contenteditable?
|
||||
& common.attrs.draggable?
|
||||
& common.attrs.dropzone?
|
||||
& common.attrs.hidden?
|
||||
& common.attrs.spellcheck?
|
||||
)
|
||||
@@ -37,6 +38,26 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
w:string "true" | w:string "false"
|
||||
}
|
||||
|
||||
## Dropzone: dropzone
|
||||
|
||||
common.attrs.dropzone =
|
||||
attribute dropzone {
|
||||
list {
|
||||
( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
|
||||
| xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
|
||||
)*
|
||||
,
|
||||
( w:string "copy"
|
||||
| w:string "move"
|
||||
| w:string "link"
|
||||
)?
|
||||
,
|
||||
( xsd:string { pattern = "[sS][tT][rR][iI][nN][gG]:.+" }
|
||||
| xsd:string { pattern = "[fF][iI][lL][eE]:.+" }
|
||||
)*
|
||||
}
|
||||
}
|
||||
|
||||
## Hidden Element: hidden
|
||||
|
||||
common.attrs.hidden =
|
||||
@@ -55,7 +76,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
html.attrs.manifest =
|
||||
attribute manifest {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
|
||||
html.attrs &= html.attrs.manifest?
|
||||
@@ -68,6 +89,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& progress.attrs.value?
|
||||
& progress.attrs.max?
|
||||
& ( common.attrs.aria.role.progressbar
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
progress.attrs.value =
|
||||
attribute value {
|
||||
@@ -82,6 +107,34 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
common.elem.phrasing |= progress.elem
|
||||
|
||||
## Dialog box, inspector, or window: <dialog>
|
||||
dialog.elem =
|
||||
element dialog { dialog.inner & dialog.attrs }
|
||||
dialog.attrs =
|
||||
( common.attrs
|
||||
& dialog.attrs.open?
|
||||
& ( common.attrs.aria.role.alert
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.main
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.region
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
dialog.attrs.open =
|
||||
attribute open {
|
||||
w:string "open" | w:string ""
|
||||
}
|
||||
dialog.inner =
|
||||
( common.inner.flow )
|
||||
common.elem.flow |= dialog.elem
|
||||
|
||||
## Command with an associated action: <command type='command'>
|
||||
|
||||
command.command.elem =
|
||||
@@ -90,6 +143,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& command.command.attrs.type?
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.command.attrs.type =
|
||||
attribute type {
|
||||
@@ -103,11 +159,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element command { command.inner & command.radio.attrs }
|
||||
command.radio.attrs =
|
||||
( common.attrs
|
||||
& ( command.radio.attrs.type
|
||||
& command.radio.attrs.radiogroup #REVISIT taking liberties here
|
||||
& command.radio.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( command.radio.attrs.type
|
||||
& command.radio.attrs.radiogroup #REVISIT taking liberties here
|
||||
& command.radio.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.radio.attrs.type =
|
||||
attribute type {
|
||||
@@ -129,11 +188,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element command { command.inner & command.checkbox.attrs }
|
||||
command.checkbox.attrs =
|
||||
( common.attrs
|
||||
& ( command.checkbox.attrs.type
|
||||
& command.checkbox.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( command.checkbox.attrs.type
|
||||
& command.checkbox.attrs.checked?
|
||||
)
|
||||
& common-command.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
command.checkbox.attrs.type =
|
||||
attribute type {
|
||||
w:string "checkbox"
|
||||
@@ -155,7 +217,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
command.attrs.icon =
|
||||
attribute icon {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
command.attrs.disabled =
|
||||
attribute disabled {
|
||||
@@ -176,6 +238,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& menu.attrs.type?
|
||||
& menu.attrs.label?
|
||||
& common.attrs.aria? # some roles only allowed if type is "toolbar" state; check in assertions
|
||||
)
|
||||
menu.attrs.type =
|
||||
attribute type {
|
||||
@@ -198,7 +261,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
mli.elem =
|
||||
element li { mli.inner & mli.attrs }
|
||||
mli.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& common.attrs.aria?
|
||||
)
|
||||
mli.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -223,7 +288,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
common.data.integer.non-negative
|
||||
}
|
||||
canvas.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
canvas.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -237,15 +302,50 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
details.attrs =
|
||||
( common.attrs
|
||||
& details.attrs.open?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region # aria-expanded must be true if open attr present; check by assertions
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.banner
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.combobox
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.img
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.listitem
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.note
|
||||
| common.attrs.aria.role.separator
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.tabpanel
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.treeitem
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.form
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.landmark.navigation
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
details.attrs.open =
|
||||
attribute open {
|
||||
w:string "open" | w:string ""
|
||||
}
|
||||
details.inner =
|
||||
( summary.elem?
|
||||
, common.inner.flow
|
||||
( summary.elem
|
||||
, common.inner.flow
|
||||
)
|
||||
|
||||
common.elem.flow |= details.elem
|
||||
@@ -255,6 +355,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
summary.elem =
|
||||
element summary { summary.inner & summary.attrs }
|
||||
summary.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
summary.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -315,6 +315,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
{ string "true"
|
||||
| string "false" #default
|
||||
}
|
||||
common.attrs.aria.prop.readonly |= aria.prop.readonly
|
||||
|
||||
## relevant
|
||||
aria.prop.relevant =
|
||||
@@ -410,6 +411,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "alert" }
|
||||
|
||||
common.attrs.aria |= aria.alert
|
||||
common.attrs.aria.role.alert |= aria.alert
|
||||
|
||||
## alertdialog
|
||||
aria.alertdialog =
|
||||
@@ -420,6 +422,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "alertdialog" }
|
||||
|
||||
common.attrs.aria |= aria.alertdialog
|
||||
common.attrs.aria.role.alertdialog |= aria.alertdialog
|
||||
|
||||
## application
|
||||
aria.application =
|
||||
@@ -463,6 +466,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "button" }
|
||||
|
||||
common.attrs.aria |= aria.button
|
||||
common.attrs.aria.role.button |= aria.button
|
||||
|
||||
## checkbox
|
||||
aria.checkbox =
|
||||
@@ -474,7 +478,18 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.checkbox
|
||||
|
||||
# XXX columnheader
|
||||
# columnheader
|
||||
aria.columnheader =
|
||||
( aria.role.columnheader
|
||||
& aria.prop.sort? # not inherited
|
||||
& aria.prop.readonly? # not inherited
|
||||
& aria.state.selected? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.columnheader =
|
||||
attribute role { string "columnheader" }
|
||||
|
||||
common.attrs.aria |= aria.columnheader
|
||||
|
||||
## combobox
|
||||
aria.combobox =
|
||||
@@ -486,6 +501,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "combobox" }
|
||||
|
||||
common.attrs.aria |= aria.combobox
|
||||
common.attrs.aria.role.combobox |= aria.combobox
|
||||
|
||||
## complementary
|
||||
aria.complementary =
|
||||
@@ -528,6 +544,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "dialog" }
|
||||
|
||||
common.attrs.aria |= aria.dialog
|
||||
common.attrs.aria.role.dialog |= aria.dialog
|
||||
|
||||
## directory
|
||||
aria.directory =
|
||||
@@ -538,6 +555,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "directory" }
|
||||
|
||||
common.attrs.aria |= aria.directory
|
||||
common.attrs.aria.role.directory |= aria.directory
|
||||
|
||||
## document
|
||||
aria.document =
|
||||
@@ -550,6 +568,17 @@ common.attrs.aria.implicit.listitem |=
|
||||
common.attrs.aria |= aria.document
|
||||
common.attrs.aria.landmark.document |= aria.document
|
||||
|
||||
## form
|
||||
aria.form =
|
||||
( aria.role.form
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.form =
|
||||
attribute role { string "form" }
|
||||
|
||||
common.attrs.aria |= aria.form
|
||||
common.attrs.aria.landmark.form |= aria.form
|
||||
|
||||
## grid
|
||||
aria.grid =
|
||||
( aria.role.grid
|
||||
@@ -588,7 +617,17 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.group
|
||||
|
||||
## XXX heading
|
||||
## heading
|
||||
aria.heading =
|
||||
( aria.role.heading
|
||||
& aria.prop.level ? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.heading =
|
||||
attribute role { string "heading" }
|
||||
|
||||
common.attrs.aria |= aria.heading
|
||||
common.attrs.aria.role.heading |= aria.heading
|
||||
|
||||
## img
|
||||
aria.img =
|
||||
@@ -599,6 +638,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "img" }
|
||||
|
||||
common.attrs.aria |= aria.img
|
||||
common.attrs.aria.role.img |= aria.img
|
||||
|
||||
## link
|
||||
aria.link =
|
||||
@@ -608,6 +648,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "link" }
|
||||
|
||||
common.attrs.aria |= aria.link
|
||||
common.attrs.aria.role.link |= aria.link
|
||||
|
||||
## list
|
||||
aria.list =
|
||||
@@ -618,6 +659,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "list" }
|
||||
|
||||
common.attrs.aria |= aria.list
|
||||
common.attrs.aria.role.list |= aria.list
|
||||
|
||||
## listbox
|
||||
aria.listbox =
|
||||
@@ -630,6 +672,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "listbox" }
|
||||
|
||||
common.attrs.aria |= aria.listbox
|
||||
common.attrs.aria.role.listbox |= aria.listbox
|
||||
|
||||
## listitem
|
||||
aria.listitem =
|
||||
@@ -643,6 +686,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "listitem" }
|
||||
|
||||
common.attrs.aria |= aria.listitem
|
||||
common.attrs.aria.role.listitem |= aria.listitem
|
||||
|
||||
## log
|
||||
aria.log =
|
||||
@@ -653,6 +697,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "log" }
|
||||
|
||||
common.attrs.aria |= aria.log
|
||||
common.attrs.aria.role.log |= aria.log
|
||||
|
||||
## main
|
||||
aria.main =
|
||||
@@ -674,6 +719,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "marquee" }
|
||||
|
||||
common.attrs.aria |= aria.marquee
|
||||
common.attrs.aria.role.marquee |= aria.marquee
|
||||
|
||||
## math
|
||||
aria.math =
|
||||
@@ -695,6 +741,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menu" }
|
||||
|
||||
common.attrs.aria |= aria.menu
|
||||
common.attrs.aria.role.menu |= aria.menu
|
||||
|
||||
## menubar
|
||||
aria.menubar =
|
||||
@@ -706,6 +753,8 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menubar" }
|
||||
|
||||
common.attrs.aria |= aria.menubar
|
||||
common.attrs.aria.role.menubar |= aria.menubar
|
||||
|
||||
|
||||
## menuitem
|
||||
aria.menuitem =
|
||||
@@ -714,6 +763,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitem" }
|
||||
|
||||
common.attrs.aria |= aria.menuitem
|
||||
common.attrs.aria.role.menuitem |= aria.menuitem
|
||||
|
||||
## menuitemcheckbox
|
||||
aria.menuitemcheckbox =
|
||||
@@ -724,6 +774,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitemcheckbox" }
|
||||
|
||||
common.attrs.aria |= aria.menuitemcheckbox
|
||||
common.attrs.aria.role.menuitemcheckbox |= aria.menuitemcheckbox
|
||||
|
||||
## menuitemradio
|
||||
aria.menuitemradio =
|
||||
@@ -735,6 +786,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "menuitemradio" }
|
||||
|
||||
common.attrs.aria |= aria.menuitemradio
|
||||
common.attrs.aria.role.menuitemradio |= aria.menuitemradio
|
||||
|
||||
## navigation
|
||||
aria.navigation =
|
||||
@@ -768,6 +820,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "option" }
|
||||
|
||||
common.attrs.aria |= aria.option
|
||||
common.attrs.aria.role.option |= aria.option
|
||||
|
||||
|
||||
## presentation
|
||||
@@ -779,6 +832,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "presentation" }
|
||||
|
||||
common.attrs.aria |= aria.presentation
|
||||
common.attrs.aria.role.presentation |= aria.presentation
|
||||
|
||||
## progressbar
|
||||
aria.progressbar =
|
||||
@@ -792,6 +846,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "progressbar" }
|
||||
|
||||
common.attrs.aria |= aria.progressbar
|
||||
common.attrs.aria.role.progressbar |= aria.progressbar
|
||||
|
||||
## radio
|
||||
aria.radio =
|
||||
@@ -803,6 +858,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "radio" }
|
||||
|
||||
common.attrs.aria |= aria.radio
|
||||
common.attrs.aria.role.radio |= aria.radio
|
||||
|
||||
## radiogroup
|
||||
aria.radiogroup =
|
||||
@@ -824,6 +880,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "region" }
|
||||
|
||||
common.attrs.aria |= aria.region
|
||||
common.attrs.aria.role.region |= aria.region
|
||||
|
||||
## row
|
||||
aria.row =
|
||||
@@ -838,7 +895,18 @@ common.attrs.aria.implicit.listitem |=
|
||||
|
||||
common.attrs.aria |= aria.row
|
||||
|
||||
# XXX rowheader
|
||||
# rowheader
|
||||
aria.rowheader =
|
||||
( aria.role.rowheader
|
||||
& aria.prop.sort? # not inherited
|
||||
& aria.prop.readonly? # not inherited
|
||||
& aria.state.selected? # not inherited
|
||||
& aria.state.expanded?
|
||||
)
|
||||
aria.role.rowheader =
|
||||
attribute role { string "rowheader" }
|
||||
|
||||
common.attrs.aria |= aria.rowheader
|
||||
|
||||
## search
|
||||
aria.search =
|
||||
@@ -860,6 +928,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "separator" }
|
||||
|
||||
common.attrs.aria |= aria.separator
|
||||
common.attrs.aria.role.separator |= aria.separator
|
||||
|
||||
## slider
|
||||
aria.slider =
|
||||
@@ -873,6 +942,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "slider" }
|
||||
|
||||
common.attrs.aria |= aria.slider
|
||||
common.attrs.aria.role.slider |= aria.slider
|
||||
|
||||
## spinbutton
|
||||
aria.spinbutton =
|
||||
@@ -887,6 +957,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "spinbutton" }
|
||||
|
||||
common.attrs.aria |= aria.spinbutton
|
||||
common.attrs.aria.role.spinbutton |= aria.spinbutton
|
||||
|
||||
## status
|
||||
aria.status =
|
||||
@@ -898,6 +969,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "status" }
|
||||
|
||||
common.attrs.aria |= aria.status
|
||||
common.attrs.aria.role.status |= aria.status
|
||||
|
||||
## tab
|
||||
aria.tab =
|
||||
@@ -909,6 +981,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tab" }
|
||||
|
||||
common.attrs.aria |= aria.tab
|
||||
common.attrs.aria.role.tab |= aria.tab
|
||||
|
||||
## tablist
|
||||
aria.tablist =
|
||||
@@ -918,6 +991,8 @@ common.attrs.aria.implicit.listitem |=
|
||||
)
|
||||
aria.role.tablist =
|
||||
attribute role { string "tablist" }
|
||||
common.attrs.aria |= aria.tablist
|
||||
common.attrs.aria.role.tablist |= aria.tablist
|
||||
|
||||
## tabpanel
|
||||
aria.tabpanel =
|
||||
@@ -928,6 +1003,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tabpanel" }
|
||||
|
||||
common.attrs.aria |= aria.tabpanel
|
||||
common.attrs.aria.role.tabpanel |= aria.tabpanel
|
||||
|
||||
## textbox
|
||||
aria.textbox =
|
||||
@@ -940,6 +1016,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "textbox" }
|
||||
|
||||
common.attrs.aria |= aria.textbox
|
||||
common.attrs.aria.role.textbox |= aria.textbox
|
||||
|
||||
## timer
|
||||
aria.timer =
|
||||
@@ -962,6 +1039,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "toolbar" }
|
||||
|
||||
common.attrs.aria |= aria.toolbar
|
||||
common.attrs.aria.role.toolbar |= aria.toolbar
|
||||
|
||||
## tooltip
|
||||
aria.tooltip =
|
||||
@@ -984,6 +1062,7 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "tree" }
|
||||
|
||||
common.attrs.aria |= aria.tree
|
||||
common.attrs.aria.role.tree |= aria.tree
|
||||
|
||||
## treegrid
|
||||
aria.treegrid =
|
||||
@@ -1013,5 +1092,4 @@ common.attrs.aria.implicit.listitem |=
|
||||
attribute role { string "treeitem" }
|
||||
|
||||
common.attrs.aria |= aria.treeitem
|
||||
|
||||
|
||||
common.attrs.aria.role.treeitem |= aria.treeitem
|
||||
|
||||
@@ -25,7 +25,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
hr.elem =
|
||||
element hr { hr.inner & hr.attrs }
|
||||
hr.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.separator
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
hr.inner =
|
||||
( empty )
|
||||
|
||||
@@ -56,8 +61,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element ul { ul.inner & ul.attrs }
|
||||
ul.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ( ( common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.presentation
|
||||
)
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
ul.inner =
|
||||
@@ -71,9 +85,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element li { li.inner & li.attrs }
|
||||
li.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.listitem
|
||||
)?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
li.inner =
|
||||
( common.inner.flow )
|
||||
@@ -86,8 +98,18 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& ol.attrs.start?
|
||||
& ol.attrs.reversed?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ol.attrs.type?
|
||||
& ( ( common.attrs.aria.role.directory
|
||||
| common.attrs.aria.role.list
|
||||
| common.attrs.aria.role.listbox
|
||||
| common.attrs.aria.role.menu
|
||||
| common.attrs.aria.role.menubar
|
||||
| common.attrs.aria.role.tablist
|
||||
| common.attrs.aria.role.toolbar
|
||||
| common.attrs.aria.role.tree
|
||||
| common.attrs.aria.role.presentation
|
||||
)
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
ol.attrs.start =
|
||||
@@ -98,6 +120,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
attribute reversed {
|
||||
w:string "reversed" | w:string ""
|
||||
}
|
||||
ol.attrs.type =
|
||||
attribute type {
|
||||
w:string "1" | w:string "a" | w:string "A" | w:string "i" | w:string "I"
|
||||
}
|
||||
ol.inner =
|
||||
( oli.elem* )
|
||||
|
||||
@@ -110,9 +136,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
oli.attrs =
|
||||
( common.attrs
|
||||
& oli.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.listitem
|
||||
)?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
oli.attrs.value =
|
||||
attribute value {
|
||||
@@ -149,7 +173,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.aria?
|
||||
)
|
||||
dt.inner =
|
||||
( common.inner.phrasing )
|
||||
( common.inner.flow )
|
||||
|
||||
## Definition Description: <dd>
|
||||
|
||||
@@ -178,9 +202,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.aria?
|
||||
)
|
||||
div.inner =
|
||||
( style.elem.scoped*
|
||||
, common.inner.flow
|
||||
)
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= div.elem
|
||||
|
||||
@@ -190,7 +212,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element legend { legend.inner & legend.attrs }
|
||||
legend.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
legend.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -29,6 +29,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## XML features that can't be serialized as HTML
|
||||
nonHTMLizable = empty
|
||||
|
||||
## features that are not part of the W3C HTML spec
|
||||
nonW3C = empty
|
||||
|
||||
# #####################################################################
|
||||
## Wildcards #
|
||||
# #####################################################################
|
||||
@@ -86,8 +89,15 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
## Prose Content
|
||||
|
||||
common.inner.transparent.flow =
|
||||
( text & common.elem.flow* )
|
||||
|
||||
common.inner.flow =
|
||||
( text & common.elem.flow* ) # REVISIT <style scoped>
|
||||
( style.elem.scoped?,
|
||||
( text
|
||||
& common.elem.flow*
|
||||
)
|
||||
)
|
||||
|
||||
# #####################################################################
|
||||
## Common Attributes #
|
||||
@@ -138,16 +148,17 @@ common.attrs.basic =
|
||||
common.attrs.xmlspace
|
||||
common.attrs.xmlspace =
|
||||
attribute xml:space {
|
||||
string "preserve" # REVISIT this is not allowed per spec
|
||||
string "preserve" | string "default"
|
||||
} & XMLonly
|
||||
|
||||
common.attrs.i18n =
|
||||
( common.attrs.dir?
|
||||
& common.attrs.language?
|
||||
& common.attrs.translate?
|
||||
)
|
||||
common.attrs.dir =
|
||||
attribute dir {
|
||||
w:string "ltr" | w:string "rtl"
|
||||
w:string "ltr" | w:string "rtl" | w:string "auto"
|
||||
}
|
||||
# This lang definition is a hack for enviroments where
|
||||
# the HTML5 parser maps lang to xml:lang.
|
||||
@@ -176,6 +187,10 @@ common.attrs.i18n =
|
||||
# attribute xml:lang {
|
||||
# common.data.langcode
|
||||
# } & XMLonly
|
||||
common.attrs.translate =
|
||||
attribute translate {
|
||||
w:string "yes" | w:string "no"
|
||||
}
|
||||
|
||||
common.attrs.present =
|
||||
( common.attrs.style?
|
||||
@@ -292,10 +307,31 @@ common.attrs.other =
|
||||
common.data.date-or-time =
|
||||
w:date-or-time
|
||||
|
||||
common.data.date =
|
||||
w:date
|
||||
|
||||
common.data.time-datetime =
|
||||
w:time-datetime
|
||||
|
||||
## IRIs
|
||||
|
||||
common.data.uri =
|
||||
w:string "" | w:iri-ref
|
||||
# allow either a non-empty IRI ref or zero or more HTML
|
||||
# space characters (which are: space, tab, LF, FF, CR)
|
||||
( w:iri-ref
|
||||
| xsd:string {
|
||||
pattern = "[ \x{0A}-\x{0D}]*"
|
||||
# NOTE The range above incorrectly allows U+000B
|
||||
# in addition to the HTML space characters; but
|
||||
# that's not a problem in practice because HTML
|
||||
# and XML parsers will both catch any U+000B
|
||||
# and report an error for it before that pattern
|
||||
# ever gets evaluated.
|
||||
}
|
||||
)
|
||||
|
||||
common.data.uri.non-empty =
|
||||
w:iri-ref
|
||||
|
||||
common.data.uris =
|
||||
list { w:iri-ref* }
|
||||
@@ -351,14 +387,18 @@ common.attrs.other =
|
||||
common.data.keylabellist =
|
||||
w:keylabellist
|
||||
|
||||
## Microdata Identifier
|
||||
common.data.microdata-identifier =
|
||||
w:microdata-identifier
|
||||
## Microdata Properties
|
||||
common.data.microdata-properties =
|
||||
list { w:microdata-property+ }
|
||||
|
||||
## Zero
|
||||
common.data.zero =
|
||||
w:zero
|
||||
|
||||
## ECMAScript FunctionBody
|
||||
common.data.functionbody =
|
||||
w:functionbody
|
||||
|
||||
# #####################################################################
|
||||
## WF2 Module Hook #
|
||||
# #####################################################################
|
||||
@@ -370,6 +410,50 @@ common-form.attrs.form = ( notAllowed )
|
||||
# #####################################################################
|
||||
|
||||
common.attrs.aria = ( notAllowed )
|
||||
common.attrs.aria.role.alert = ( notAllowed )
|
||||
common.attrs.aria.role.alertdialog = ( notAllowed )
|
||||
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.checkbox = ( notAllowed )
|
||||
common.attrs.aria.role.combobox = ( notAllowed )
|
||||
common.attrs.aria.role.complementary = ( notAllowed )
|
||||
common.attrs.aria.role.contentinfo = ( notAllowed )
|
||||
common.attrs.aria.role.dialog = ( notAllowed )
|
||||
common.attrs.aria.role.directory = ( notAllowed )
|
||||
common.attrs.aria.role.document = ( notAllowed )
|
||||
common.attrs.aria.role.heading = ( notAllowed )
|
||||
common.attrs.aria.role.img = ( notAllowed )
|
||||
common.attrs.aria.role.link = ( notAllowed )
|
||||
common.attrs.aria.role.list = ( notAllowed )
|
||||
common.attrs.aria.role.listitem = ( notAllowed )
|
||||
common.attrs.aria.role.log = ( notAllowed )
|
||||
common.attrs.aria.role.listbox = ( notAllowed )
|
||||
common.attrs.aria.role.main = ( notAllowed )
|
||||
common.attrs.aria.role.marquee = ( notAllowed )
|
||||
common.attrs.aria.role.menu = ( notAllowed )
|
||||
common.attrs.aria.role.menubar = ( notAllowed )
|
||||
common.attrs.aria.role.menuitem = ( notAllowed )
|
||||
common.attrs.aria.role.menuitemcheckbox = ( notAllowed )
|
||||
common.attrs.aria.role.menuitemradio = ( notAllowed )
|
||||
common.attrs.aria.role.note = ( notAllowed )
|
||||
common.attrs.aria.role.option = ( notAllowed )
|
||||
common.attrs.aria.role.presentation = ( notAllowed )
|
||||
common.attrs.aria.role.progressbar = ( notAllowed )
|
||||
common.attrs.aria.role.radio = ( notAllowed )
|
||||
common.attrs.aria.role.region = ( notAllowed )
|
||||
common.attrs.aria.role.search = ( 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.tab = ( notAllowed )
|
||||
common.attrs.aria.role.tablist = ( notAllowed )
|
||||
common.attrs.aria.role.textbox = ( notAllowed )
|
||||
common.attrs.aria.role.toolbar = ( notAllowed )
|
||||
common.attrs.aria.role.tree = ( notAllowed )
|
||||
common.attrs.aria.role.treeitem = ( notAllowed )
|
||||
common.attrs.aria.implicit.button = ( notAllowed )
|
||||
common.attrs.aria.implicit.input = ( notAllowed )
|
||||
common.attrs.aria.implicit.region = ( notAllowed )
|
||||
@@ -380,6 +464,7 @@ common.attrs.aria.implicit.link = ( notAllowed )
|
||||
common.attrs.aria.implicit.listitem = ( notAllowed )
|
||||
common.attrs.aria.implicit.img = ( notAllowed )
|
||||
common.attrs.aria.implicit.select = ( notAllowed )
|
||||
common.attrs.aria.prop.readonly = ( notAllowed )
|
||||
common.attrs.aria.landmark.application = ( notAllowed )
|
||||
common.attrs.aria.landmark.banner = ( notAllowed )
|
||||
common.attrs.aria.landmark.complementary = ( notAllowed )
|
||||
|
||||
@@ -15,21 +15,27 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& script.attrs.type?
|
||||
& script.attrs.language? # restricted in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
script.elem.imported =
|
||||
element script { script.inner.imported & script.attrs.imported }
|
||||
script.attrs.imported =
|
||||
( common.attrs
|
||||
& script.attrs.src
|
||||
& script.attrs.src?
|
||||
& script.attrs.defer?
|
||||
& script.attrs.async?
|
||||
& script.attrs.type?
|
||||
& script.attrs.charset?
|
||||
& script.attrs.language? # restricted in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
script.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
script.attrs.defer =
|
||||
attribute defer {
|
||||
@@ -86,7 +92,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
noscript.inner.flow =
|
||||
( common.inner.flow )
|
||||
noscript.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
|
||||
common.elem.metadata |= noscript.elem.head
|
||||
common.elem.phrasing |= noscript.elem.phrasing
|
||||
@@ -116,8 +126,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& scripting.attr.onended?
|
||||
& scripting.attr.onerror?
|
||||
& scripting.attr.onfocus?
|
||||
& scripting.attr.onformchange?
|
||||
& scripting.attr.onforminput?
|
||||
& scripting.attr.oninput?
|
||||
& scripting.attr.oninvalid?
|
||||
& scripting.attr.onkeydown?
|
||||
@@ -138,7 +146,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& scripting.attr.onplaying?
|
||||
& scripting.attr.onprogress?
|
||||
& scripting.attr.onratechange?
|
||||
& scripting.attr.onreadystatechange?
|
||||
& scripting.attr.onreset?
|
||||
& scripting.attr.onscroll?
|
||||
& scripting.attr.onseeked?
|
||||
& scripting.attr.onseeking?
|
||||
@@ -155,113 +163,113 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
common.attrs.other &= common.attrs.scripting
|
||||
|
||||
scripting.attr.onabort =
|
||||
attribute onabort { string }
|
||||
attribute onabort { common.data.functionbody }
|
||||
scripting.attr.onblur =
|
||||
attribute onblur { string }
|
||||
attribute onblur { common.data.functionbody }
|
||||
scripting.attr.oncanplay =
|
||||
attribute oncanplay { string }
|
||||
attribute oncanplay { common.data.functionbody }
|
||||
scripting.attr.oncanplaythrough =
|
||||
attribute oncanplaythrough { string }
|
||||
attribute oncanplaythrough { common.data.functionbody }
|
||||
scripting.attr.onchange =
|
||||
attribute onchange { string }
|
||||
attribute onchange { common.data.functionbody }
|
||||
scripting.attr.onclick =
|
||||
attribute onclick { string }
|
||||
attribute onclick { common.data.functionbody }
|
||||
scripting.attr.oncontextmenu =
|
||||
attribute oncontextmenu { string }
|
||||
attribute oncontextmenu { common.data.functionbody }
|
||||
scripting.attr.ondblclick =
|
||||
attribute ondblclick { string }
|
||||
attribute ondblclick { common.data.functionbody }
|
||||
scripting.attr.ondrag =
|
||||
attribute ondrag { string }
|
||||
attribute ondrag { common.data.functionbody }
|
||||
scripting.attr.ondragend =
|
||||
attribute ondragend { string }
|
||||
attribute ondragend { common.data.functionbody }
|
||||
scripting.attr.ondragenter =
|
||||
attribute ondragenter { string }
|
||||
attribute ondragenter { common.data.functionbody }
|
||||
scripting.attr.ondragleave =
|
||||
attribute ondragleave { string }
|
||||
attribute ondragleave { common.data.functionbody }
|
||||
scripting.attr.ondragover =
|
||||
attribute ondragover { string }
|
||||
attribute ondragover { common.data.functionbody }
|
||||
scripting.attr.ondragstart =
|
||||
attribute ondragstart { string }
|
||||
attribute ondragstart { common.data.functionbody }
|
||||
scripting.attr.ondrop =
|
||||
attribute ondrop { string }
|
||||
attribute ondrop { common.data.functionbody }
|
||||
scripting.attr.ondurationchange =
|
||||
attribute ondurationchange { string }
|
||||
attribute ondurationchange { common.data.functionbody }
|
||||
scripting.attr.onemptied =
|
||||
attribute onemptied { string }
|
||||
attribute onemptied { common.data.functionbody }
|
||||
scripting.attr.onended =
|
||||
attribute onended { string }
|
||||
attribute onended { common.data.functionbody }
|
||||
scripting.attr.onerror =
|
||||
attribute onerror { string }
|
||||
attribute onerror { common.data.functionbody }
|
||||
scripting.attr.onfocus =
|
||||
attribute onfocus { string }
|
||||
attribute onfocus { common.data.functionbody }
|
||||
scripting.attr.onformchange =
|
||||
attribute onformchange { string }
|
||||
attribute onformchange { common.data.functionbody }
|
||||
scripting.attr.onforminput =
|
||||
attribute onforminput { string }
|
||||
attribute onforminput { common.data.functionbody }
|
||||
scripting.attr.oninput =
|
||||
attribute oninput { string }
|
||||
attribute oninput { common.data.functionbody }
|
||||
scripting.attr.oninvalid =
|
||||
attribute oninvalid { string }
|
||||
attribute oninvalid { common.data.functionbody }
|
||||
scripting.attr.onkeydown =
|
||||
attribute onkeydown { string }
|
||||
attribute onkeydown { common.data.functionbody }
|
||||
scripting.attr.onkeypress =
|
||||
attribute onkeypress { string }
|
||||
attribute onkeypress { common.data.functionbody }
|
||||
scripting.attr.onkeyup =
|
||||
attribute onkeyup { string }
|
||||
attribute onkeyup { common.data.functionbody }
|
||||
scripting.attr.onload =
|
||||
attribute onload { string }
|
||||
attribute onload { common.data.functionbody }
|
||||
scripting.attr.onloadeddata =
|
||||
attribute onloadeddata { string }
|
||||
attribute onloadeddata { common.data.functionbody }
|
||||
scripting.attr.onloadedmetadata =
|
||||
attribute onloadedmetadata { string }
|
||||
attribute onloadedmetadata { common.data.functionbody }
|
||||
scripting.attr.onloadstart =
|
||||
attribute onloadstart { string }
|
||||
attribute onloadstart { common.data.functionbody }
|
||||
scripting.attr.onmousedown =
|
||||
attribute onmousedown { string }
|
||||
attribute onmousedown { common.data.functionbody }
|
||||
scripting.attr.onmousemove =
|
||||
attribute onmousemove { string }
|
||||
attribute onmousemove { common.data.functionbody }
|
||||
scripting.attr.onmouseout =
|
||||
attribute onmouseout { string }
|
||||
attribute onmouseout { common.data.functionbody }
|
||||
scripting.attr.onmouseover =
|
||||
attribute onmouseover { string }
|
||||
attribute onmouseover { common.data.functionbody }
|
||||
scripting.attr.onmouseup =
|
||||
attribute onmouseup { string }
|
||||
attribute onmouseup { common.data.functionbody }
|
||||
scripting.attr.onmousewheel =
|
||||
attribute onmousewheel { string }
|
||||
attribute onmousewheel { common.data.functionbody }
|
||||
scripting.attr.onpause =
|
||||
attribute onpause { string }
|
||||
attribute onpause { common.data.functionbody }
|
||||
scripting.attr.onplay =
|
||||
attribute onplay { string }
|
||||
attribute onplay { common.data.functionbody }
|
||||
scripting.attr.onplaying =
|
||||
attribute onplaying { string }
|
||||
attribute onplaying { common.data.functionbody }
|
||||
scripting.attr.onprogress =
|
||||
attribute onprogress { string }
|
||||
attribute onprogress { common.data.functionbody }
|
||||
scripting.attr.onratechange =
|
||||
attribute onratechange { string }
|
||||
scripting.attr.onreadystatechange =
|
||||
attribute onreadystatechange { string }
|
||||
attribute onratechange { common.data.functionbody }
|
||||
scripting.attr.onreset =
|
||||
attribute onreset { common.data.functionbody }
|
||||
scripting.attr.onscroll =
|
||||
attribute onscroll { string }
|
||||
attribute onscroll { common.data.functionbody }
|
||||
scripting.attr.onseeked =
|
||||
attribute onseeked { string }
|
||||
attribute onseeked { common.data.functionbody }
|
||||
scripting.attr.onseeking =
|
||||
attribute onseeking { string }
|
||||
attribute onseeking { common.data.functionbody }
|
||||
scripting.attr.onselect =
|
||||
attribute onselect { string }
|
||||
attribute onselect { common.data.functionbody }
|
||||
scripting.attr.onshow =
|
||||
attribute onshow { string }
|
||||
attribute onshow { common.data.functionbody }
|
||||
scripting.attr.onstalled =
|
||||
attribute onstalled { string }
|
||||
attribute onstalled { common.data.functionbody }
|
||||
scripting.attr.onsubmit =
|
||||
attribute onsubmit { string }
|
||||
attribute onsubmit { common.data.functionbody }
|
||||
scripting.attr.onsuspend =
|
||||
attribute onsuspend { string }
|
||||
attribute onsuspend { common.data.functionbody }
|
||||
scripting.attr.ontimeupdate =
|
||||
attribute ontimeupdate { string }
|
||||
attribute ontimeupdate { common.data.functionbody }
|
||||
scripting.attr.onvolumechange =
|
||||
attribute onvolumechange { string }
|
||||
attribute onvolumechange { common.data.functionbody }
|
||||
scripting.attr.onwaiting =
|
||||
attribute onwaiting { string }
|
||||
attribute onwaiting { common.data.functionbody }
|
||||
|
||||
# scripting.attr.common =
|
||||
# ( scripting.attr.mouse
|
||||
|
||||
@@ -11,15 +11,21 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
time.attrs =
|
||||
( common.attrs
|
||||
& time.attrs.datetime?
|
||||
& time.attrs.pubdate?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
time.attrs.datetime =
|
||||
attribute datetime {
|
||||
common.data.date-or-time #REVISIT check format
|
||||
common.data.time-datetime
|
||||
}
|
||||
time.attrs.pubdate =
|
||||
attribute pubdate {
|
||||
w:string "pubdate" | w:string ""
|
||||
time.attrs.datetime.dateonly =
|
||||
attribute datetime {
|
||||
common.data.date
|
||||
}
|
||||
time.attrs.datetime.tz =
|
||||
attribute datetime {
|
||||
common.data.datetime
|
||||
}
|
||||
time.inner =
|
||||
( common.inner.phrasing ) #Cannot enforce textContent format here
|
||||
@@ -38,6 +44,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& meter.attrs.high?
|
||||
& meter.attrs.max?
|
||||
& meter.attrs.optimum?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meter.attrs.value =
|
||||
attribute value {
|
||||
|
||||
@@ -15,17 +15,17 @@ namespace local = ""
|
||||
img.attrs =
|
||||
( common.attrs
|
||||
& img.attrs.src
|
||||
& img.attrs.alt?
|
||||
& img.attrs.alt? # ARIA: if alt empty, only allowed role value is "presentation"; check in assertions
|
||||
& img.attrs.height?
|
||||
& img.attrs.width?
|
||||
& img.attrs.usemap?
|
||||
& img.attrs.ismap?
|
||||
& img.attrs.border? # obsolete
|
||||
& img.attrs.border? # obsolete
|
||||
& common.attrs.aria?
|
||||
)
|
||||
img.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
img.attrs.alt =
|
||||
attribute alt {
|
||||
@@ -67,10 +67,14 @@ namespace local = ""
|
||||
& embed.attrs.height?
|
||||
& embed.attrs.width?
|
||||
& embed.attrs.other*
|
||||
& ( common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
embed.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
embed.attrs.type =
|
||||
attribute type {
|
||||
@@ -94,11 +98,13 @@ namespace local = ""
|
||||
| title
|
||||
| dir
|
||||
| lang
|
||||
| translate
|
||||
| style
|
||||
| tabindex
|
||||
| contextmenu
|
||||
| contenteditable
|
||||
| draggable
|
||||
| dropzone
|
||||
| hidden
|
||||
| onabort
|
||||
| onblur
|
||||
@@ -120,8 +126,6 @@ namespace local = ""
|
||||
| onended
|
||||
| onerror
|
||||
| onfocus
|
||||
| onformchange
|
||||
| onforminput
|
||||
| oninput
|
||||
| oninvalid
|
||||
| onkeydown
|
||||
@@ -142,7 +146,7 @@ namespace local = ""
|
||||
| onplaying
|
||||
| onprogress
|
||||
| onratechange
|
||||
| onreadystatechange
|
||||
| onreset
|
||||
| onscroll
|
||||
| onseeked
|
||||
| onseeking
|
||||
@@ -174,6 +178,7 @@ namespace local = ""
|
||||
| aria-describedby
|
||||
| aria-disabled
|
||||
| aria-dropeffect
|
||||
| aria-expanded
|
||||
| aria-flowto
|
||||
| aria-grabbed
|
||||
| aria-haspopup
|
||||
@@ -184,7 +189,7 @@ namespace local = ""
|
||||
| aria-live
|
||||
| aria-owns
|
||||
| aria-relevant
|
||||
| aria-required
|
||||
| aria-required
|
||||
| spellcheck
|
||||
| accesskey
|
||||
| itemref
|
||||
@@ -194,6 +199,64 @@ namespace local = ""
|
||||
| itemid
|
||||
| name
|
||||
| align
|
||||
| about
|
||||
| prefix
|
||||
| property
|
||||
| typeof
|
||||
| vocab
|
||||
| content
|
||||
| datatype
|
||||
| href
|
||||
| rel
|
||||
| resource
|
||||
| rev
|
||||
| inlist
|
||||
| its-loc-note
|
||||
| its-loc-note-type
|
||||
| its-loc-note-ref
|
||||
| its-term-info-ref
|
||||
| its-term
|
||||
| its-term-confidence
|
||||
| its-within-text
|
||||
| its-domain-mapping
|
||||
| its-disambig-granularity
|
||||
| its-disambig-confidence
|
||||
| its-disambig-class-ref
|
||||
| its-disambig-ident
|
||||
| its-disambig-ident-ref
|
||||
| its-disambig-source
|
||||
| its-locale-filter-list
|
||||
| its-person
|
||||
| its-person-ref
|
||||
| its-org
|
||||
| its-org-ref
|
||||
| its-tool
|
||||
| its-tool-ref
|
||||
| its-rev-person
|
||||
| its-rev-person-ref
|
||||
| its-rev-org
|
||||
| its-rev-org-ref
|
||||
| its-rev-tool
|
||||
| its-rev-tool-ref
|
||||
| its-prov-ref
|
||||
| its-provenance-records-ref
|
||||
| its-loc-quality-issues-ref
|
||||
| its-loc-quality-issue-type
|
||||
| its-loc-quality-issue-comment
|
||||
| its-loc-quality-issue-severity
|
||||
| its-loc-quality-issue-profile-ref
|
||||
| its-loc-quality-issue-enabled
|
||||
| its-loc-quality-rating-score
|
||||
| its-loc-quality-rating-vote
|
||||
| its-loc-quality-rating-score-threshold
|
||||
| its-loc-quality-rating-vote-threshold
|
||||
| its-loc-quality-rating-profile-ref
|
||||
| its-mt-confidence
|
||||
| its-allowed-characters
|
||||
| its-storage-size
|
||||
| its-storage-encoding
|
||||
| its-line-break-type
|
||||
| its-annotators-ref
|
||||
)
|
||||
{
|
||||
string
|
||||
@@ -224,11 +287,15 @@ namespace local = ""
|
||||
& object.attrs.usemap?
|
||||
& object.attrs.name?
|
||||
& common-form.attrs.form?
|
||||
& common.attrs.aria?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
object.attrs.data =
|
||||
attribute data {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
object.attrs.type =
|
||||
attribute type {
|
||||
@@ -252,7 +319,7 @@ namespace local = ""
|
||||
}
|
||||
object.inner.flow =
|
||||
( param.elem*
|
||||
, common.inner.flow
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
object.inner.phrasing =
|
||||
( param.elem*
|
||||
@@ -270,6 +337,9 @@ namespace local = ""
|
||||
( common.attrs
|
||||
& param.attrs.name
|
||||
& param.attrs.value
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
param.attrs.name =
|
||||
attribute name {
|
||||
@@ -289,18 +359,26 @@ namespace local = ""
|
||||
iframe.attrs =
|
||||
( common.attrs
|
||||
& iframe.attrs.src?
|
||||
& iframe.attrs.srcdoc?
|
||||
& iframe.attrs.name?
|
||||
& iframe.attrs.width?
|
||||
& iframe.attrs.height?
|
||||
& iframe.attrs.sandbox?
|
||||
& iframe.attrs.seamless?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& iframe.attrs.allowfullscreen?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.role.img
|
||||
)?
|
||||
)
|
||||
iframe.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
iframe.attrs.srcdoc =
|
||||
attribute srcdoc {
|
||||
string #FIXME
|
||||
}
|
||||
iframe.attrs.name =
|
||||
attribute name {
|
||||
@@ -465,6 +543,10 @@ namespace local = ""
|
||||
, ( w:string "allow-top-navigation" )?
|
||||
}
|
||||
} & v5only
|
||||
iframe.attrs.allowfullscreen =
|
||||
attribute allowfullscreen {
|
||||
w:string "allowfullscreen" | w:string ""
|
||||
} & v5only
|
||||
iframe.inner =
|
||||
( text )
|
||||
|
||||
@@ -482,13 +564,16 @@ namespace local = ""
|
||||
map.attrs =
|
||||
( common.attrs
|
||||
& map.attrs.name
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
) # REVISIT make id required in Schematron
|
||||
map.attrs.name =
|
||||
attribute name {
|
||||
common.data.name
|
||||
}
|
||||
map.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
map.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -500,7 +585,10 @@ namespace local = ""
|
||||
area.elem =
|
||||
element area { area.inner & area.attrs }
|
||||
area.attrs =
|
||||
( common.attrs
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( area.attrs.alt
|
||||
& shared-hyperlink.attrs.href
|
||||
)?
|
||||
@@ -511,6 +599,10 @@ namespace local = ""
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& area.attrs.shape?
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
area.attrs.alt =
|
||||
attribute alt {
|
||||
|
||||
@@ -46,7 +46,18 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Color
|
||||
|
||||
form.data.color =
|
||||
w:color
|
||||
w:simple-color
|
||||
# xsd:string {
|
||||
# pattern = "#[a-fA-F0-9]{6}"
|
||||
# }
|
||||
|
||||
## Text without line breaks
|
||||
|
||||
form.data.stringwithoutlinebreaks =
|
||||
w:string-without-line-breaks
|
||||
|
||||
## Non-empty string
|
||||
|
||||
form.data.nonemptystring =
|
||||
w:non-empty-string
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
default namespace = "http://www.w3.org/1999/xhtml/html5"
|
||||
default namespace = "http://www.w3.org/1999/xhtml"
|
||||
# #####################################################################
|
||||
## RELAX NG Schema for HTML 5 #
|
||||
# #####################################################################
|
||||
|
||||
@@ -12,6 +12,8 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& media.attrs.preload?
|
||||
& media.attrs.controls?
|
||||
& media.attrs.loop?
|
||||
& media.attrs.mediagroup?
|
||||
& media.attrs.muted?
|
||||
)
|
||||
media.attrs.autoplay =
|
||||
attribute autoplay {
|
||||
@@ -29,6 +31,14 @@ 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 ""
|
||||
}
|
||||
|
||||
## Source: <source>
|
||||
|
||||
@@ -39,10 +49,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& source.attrs.src
|
||||
& source.attrs.type?
|
||||
& source.attrs.media?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
source.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
source.attrs.type =
|
||||
attribute type {
|
||||
@@ -64,7 +77,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
media.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
|
||||
## Video: <video>
|
||||
@@ -79,10 +92,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& video.attrs.poster?
|
||||
& video.attrs.height?
|
||||
& video.attrs.width?
|
||||
& common.attrs.aria.landmark.application?
|
||||
)
|
||||
video.attrs.poster =
|
||||
attribute poster {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
video.attrs.height =
|
||||
attribute height {
|
||||
@@ -94,10 +108,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
video.inner.flow =
|
||||
( media.source
|
||||
, common.inner.flow
|
||||
, track.elem*
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
video.inner.phrasing =
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.phrasing
|
||||
)
|
||||
|
||||
@@ -113,29 +129,72 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
audio.attrs =
|
||||
( common.attrs
|
||||
& media.attrs
|
||||
& common.attrs.aria.landmark.application?
|
||||
)
|
||||
audio.inner.flow =
|
||||
( media.source
|
||||
, common.inner.flow
|
||||
, track.elem*
|
||||
, common.inner.transparent.flow
|
||||
)
|
||||
audio.inner.phrasing =
|
||||
( media.source
|
||||
, track.elem*
|
||||
, common.inner.phrasing
|
||||
)
|
||||
|
||||
common.elem.flow |= audio.elem.flow
|
||||
common.elem.phrasing |= audio.elem.phrasing
|
||||
|
||||
## supplementary media track: <track>
|
||||
#
|
||||
track.elem =
|
||||
element track { track.inner & track.attrs }
|
||||
|
||||
track.attrs =
|
||||
( common.attrs
|
||||
& track.attrs.kind?
|
||||
& track.attrs.src
|
||||
& track.attrs.srclang?
|
||||
& track.attrs.label?
|
||||
& track.attrs.default?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
track.attrs.kind =
|
||||
attribute kind {
|
||||
w:string "subtitles" | w:string "captions" | w:string "descriptions" | w:string "chapters" | w:string "metadata"
|
||||
}
|
||||
track.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
track.attrs.srclang =
|
||||
attribute srclang {
|
||||
common.data.langcode
|
||||
}
|
||||
track.attrs.label =
|
||||
attribute label {
|
||||
string # must be non-empty value; check is in assertions code
|
||||
}
|
||||
track.attrs.default =
|
||||
attribute default {
|
||||
w:string "default" | w:string ""
|
||||
}
|
||||
|
||||
track.inner =
|
||||
( empty )
|
||||
|
||||
## Captioned Content: <figure>
|
||||
|
||||
figure.elem =
|
||||
element figure { figure.inner & figure.attrs }
|
||||
figure.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.img?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
figure.inner =
|
||||
( ( figcaption.elem, common.inner.flow )
|
||||
( ( figcaption.elem?, common.inner.flow )
|
||||
| ( common.inner.flow, figcaption.elem? )
|
||||
)
|
||||
|
||||
@@ -146,6 +205,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
figcaption.elem =
|
||||
element figcaption { figcaption.inner & figcaption.attrs }
|
||||
figcaption.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
figcaption.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -9,7 +9,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
html.elem =
|
||||
element html { html.inner & html.attrs }
|
||||
html.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
html.inner =
|
||||
( head.elem
|
||||
, body.elem
|
||||
@@ -22,6 +26,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
head.attrs =
|
||||
( common.attrs
|
||||
# & head.attrs.profile?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
# head.attrs.profile =
|
||||
# attribute profile {
|
||||
@@ -49,6 +56,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& ( common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
& body.attrs.onafterprint?
|
||||
& body.attrs.onbeforeprint?
|
||||
@@ -57,49 +65,57 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& body.attrs.onmessage?
|
||||
& body.attrs.onoffline?
|
||||
& body.attrs.ononline?
|
||||
& body.attrs.onpagehide?
|
||||
& body.attrs.onpageshow?
|
||||
& body.attrs.onpopstate?
|
||||
& body.attrs.onredo?
|
||||
& body.attrs.onresize?
|
||||
& body.attrs.onstorage?
|
||||
& body.attrs.onundo?
|
||||
& body.attrs.onunload?
|
||||
)
|
||||
body.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
body.attrs.onafterprint =
|
||||
attribute onafterprint { string }
|
||||
attribute onafterprint { common.data.functionbody }
|
||||
body.attrs.onbeforeprint =
|
||||
attribute onbeforeprint { string }
|
||||
attribute onbeforeprint { common.data.functionbody }
|
||||
body.attrs.onbeforeunload =
|
||||
attribute onbeforeunload { string }
|
||||
attribute onbeforeunload { common.data.functionbody }
|
||||
body.attrs.onhashchange =
|
||||
attribute onhashchange { string }
|
||||
attribute onhashchange { common.data.functionbody }
|
||||
body.attrs.onmessage =
|
||||
attribute onmessage { string }
|
||||
attribute onmessage { common.data.functionbody }
|
||||
body.attrs.onoffline =
|
||||
attribute onoffline { string }
|
||||
attribute onoffline { common.data.functionbody }
|
||||
body.attrs.ononline =
|
||||
attribute ononline { string }
|
||||
attribute ononline { common.data.functionbody }
|
||||
body.attrs.onpopstate =
|
||||
attribute onpopstate { string }
|
||||
attribute onpopstate { common.data.functionbody }
|
||||
body.attrs.onpagehide =
|
||||
attribute onpagehide { common.data.functionbody }
|
||||
body.attrs.onpageshow =
|
||||
attribute onpageshow { common.data.functionbody }
|
||||
body.attrs.onredo =
|
||||
attribute onredo { string }
|
||||
attribute onredo { common.data.functionbody }
|
||||
body.attrs.onresize =
|
||||
attribute onresize { string }
|
||||
attribute onresize { common.data.functionbody }
|
||||
body.attrs.onstorage =
|
||||
attribute onstorage { string }
|
||||
attribute onstorage { common.data.functionbody }
|
||||
body.attrs.onundo =
|
||||
attribute onundo { string }
|
||||
attribute onundo { common.data.functionbody }
|
||||
body.attrs.onunload =
|
||||
attribute onunload { string }
|
||||
attribute onunload { common.data.functionbody }
|
||||
|
||||
## Document Title: <title>
|
||||
|
||||
title.elem =
|
||||
element title { title.inner & title.attrs }
|
||||
title.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
title.inner =
|
||||
( text )
|
||||
|
||||
@@ -108,12 +124,18 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
base.elem =
|
||||
element base { base.inner & base.attrs }
|
||||
base.attrs =
|
||||
( common.attrs
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( ( base.attrs.href
|
||||
& base.attrs.target?
|
||||
)
|
||||
| base.attrs.target
|
||||
)
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
base.attrs.href =
|
||||
attribute href {
|
||||
@@ -131,15 +153,30 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
link.elem =
|
||||
element link { link.inner & link.attrs }
|
||||
link.attrs =
|
||||
( common.attrs
|
||||
& shared-hyperlink.attrs.href
|
||||
& shared-hyperlink.attrs.rel
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& link.attrs.href
|
||||
& link.attrs.rel
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
link.attrs.href =
|
||||
attribute href {
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
link.attrs.rel =
|
||||
attribute rel {
|
||||
w:link-rel
|
||||
}
|
||||
link.attrs.sizes =
|
||||
attribute sizes {
|
||||
w:string "any" | common.data.sizes
|
||||
@@ -158,6 +195,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& style.attrs.type?
|
||||
& style.attrs.media?
|
||||
# style.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
style.attrs.type =
|
||||
attribute type {
|
||||
@@ -182,6 +222,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& style.attrs.media?
|
||||
& style.attrs.scoped
|
||||
# style.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
style.attrs.scoped =
|
||||
attribute scoped {
|
||||
@@ -199,10 +242,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.name.attrs.name
|
||||
& meta.name.attrs.content
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.name.attrs.name =
|
||||
attribute name {
|
||||
string
|
||||
w:meta-name
|
||||
}
|
||||
meta.name.attrs.content =
|
||||
attribute content {
|
||||
@@ -224,6 +270,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.refresh
|
||||
& meta.http-equiv.attrs.content.refresh
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.refresh =
|
||||
attribute http-equiv {
|
||||
@@ -248,6 +297,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.default-style
|
||||
& meta.http-equiv.attrs.content.default-style
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.default-style =
|
||||
attribute http-equiv {
|
||||
@@ -262,31 +314,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
# if the definition is
|
||||
# reused in another language
|
||||
|
||||
## "content-language" pragma directive: <meta http-equiv='content-language'> (obsolete)
|
||||
|
||||
meta.http-equiv.content-language.elem =
|
||||
element meta { meta.inner & meta.http-equiv.content-language.attrs }
|
||||
meta.http-equiv.content-language.attrs =
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.content-language
|
||||
& meta.http-equiv.attrs.content.content-language
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.content-language =
|
||||
attribute http-equiv {
|
||||
w:string "content-language"
|
||||
}
|
||||
meta.http-equiv.attrs.content.content-language =
|
||||
attribute content {
|
||||
common.data.langcode
|
||||
}
|
||||
|
||||
common.elem.metadata |= meta.http-equiv.content-language.elem # not quite right per spec
|
||||
# if the definition is
|
||||
# reused in another language
|
||||
|
||||
## Inline Character Encoding Statement for HTML: <meta charset>
|
||||
|
||||
meta.charset.elem =
|
||||
@@ -297,6 +324,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& meta.charset.attrs.charset
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.charset.attrs.charset =
|
||||
attribute charset {
|
||||
@@ -318,6 +348,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common.attrs.other
|
||||
& meta.http-equiv.attrs.http-equiv.content-type
|
||||
& meta.http-equiv.attrs.content.content-type
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.http-equiv.attrs.http-equiv.content-type =
|
||||
attribute http-equiv {
|
||||
|
||||
@@ -17,7 +17,7 @@ common.attrs.microdata =
|
||||
}
|
||||
common.attrs.microdata.itemprop =
|
||||
attribute itemprop {
|
||||
common.data.microdata-identifier
|
||||
common.data.microdata-properties
|
||||
}
|
||||
common.attrs.microdata.itemscope =
|
||||
attribute itemscope {
|
||||
@@ -25,7 +25,7 @@ common.attrs.microdata =
|
||||
}
|
||||
common.attrs.microdata.itemtype =
|
||||
attribute itemtype {
|
||||
common.data.uri
|
||||
common.data.uri.absolute
|
||||
}
|
||||
common.attrs.microdata.itemid =
|
||||
attribute itemid {
|
||||
@@ -34,6 +34,12 @@ common.attrs.microdata =
|
||||
|
||||
common.attrs &= common.attrs.microdata
|
||||
|
||||
a.attrs &= common.attrs.microdata
|
||||
area.attrs &= common.attrs.microdata
|
||||
base.attrs &= common.attrs.microdata
|
||||
|
||||
## URL-valued Property Metadata: <link itemprop>
|
||||
|
||||
link.elem.phrasing =
|
||||
element link { link.inner & link.phrasing.attrs }
|
||||
link.phrasing.attrs =
|
||||
@@ -47,15 +53,26 @@ common.attrs &= common.attrs.microdata
|
||||
& common.attrs.microdata.itemtype?
|
||||
& common.attrs.microdata.itemid?
|
||||
& shared-hyperlink.attrs.href
|
||||
& shared-hyperlink.attrs.rel
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
& ( common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
common.elem.phrasing |= link.elem.phrasing
|
||||
|
||||
## <link> element in head, extensions
|
||||
|
||||
link.attrs.rel |= common.attrs.microdata.itemprop
|
||||
link.attrs &= common.attrs.microdata.itemref?
|
||||
link.attrs &= common.attrs.microdata.itemscope?
|
||||
link.attrs &= common.attrs.microdata.itemtype?
|
||||
link.attrs &= common.attrs.microdata.itemid?
|
||||
|
||||
## Property Metadata: <meta itemprop>
|
||||
|
||||
meta.itemprop.elem =
|
||||
@@ -71,6 +88,9 @@ common.attrs &= common.attrs.microdata
|
||||
& common.attrs.microdata.itemtype?
|
||||
& common.attrs.microdata.itemid?
|
||||
& meta.itemprop.attrs.content
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
meta.itemprop.attrs.content =
|
||||
attribute content {
|
||||
|
||||
@@ -11,8 +11,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
a.elem.flow =
|
||||
element a { a.inner.flow & a.attrs }
|
||||
a.attrs =
|
||||
( common.attrs
|
||||
& a.attrs.name?
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& a.attrs.name?
|
||||
& shared-hyperlink.attrs.href?
|
||||
& shared-hyperlink.attrs.target?
|
||||
& shared-hyperlink.attrs.rel?
|
||||
@@ -20,8 +23,16 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& shared-hyperlink.attrs.ping?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.link
|
||||
& ( ( common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.checkbox
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.treeitem
|
||||
)
|
||||
| common.attrs.aria.implicit.link
|
||||
)?
|
||||
)
|
||||
a.attrs.name =
|
||||
@@ -31,7 +42,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
a.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
a.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
|
||||
common.elem.phrasing |= a.elem.phrasing
|
||||
common.elem.flow |= a.elem.flow
|
||||
@@ -48,7 +59,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
shared-hyperlink.attrs.rel =
|
||||
attribute rel {
|
||||
common.data.tokens
|
||||
w:a-rel
|
||||
}
|
||||
shared-hyperlink.attrs.hreflang =
|
||||
attribute hreflang {
|
||||
@@ -65,7 +76,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
shared-hyperlink.attrs.ping =
|
||||
attribute ping {
|
||||
common.data.uris
|
||||
} & v5only
|
||||
} & v5only & nonW3C
|
||||
|
||||
## Emphatic Stress: <em>
|
||||
|
||||
@@ -112,7 +123,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element mark { mark.inner & mark.attrs }
|
||||
& v5only
|
||||
mark.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
mark.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -172,6 +187,32 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
common.elem.phrasing |= b.elem
|
||||
|
||||
## Struck Text: <s>
|
||||
|
||||
s.elem =
|
||||
element s { s.inner & s.attrs }
|
||||
s.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria?
|
||||
)
|
||||
s.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
common.elem.phrasing |= s.elem
|
||||
|
||||
## Underline: <u>
|
||||
|
||||
u.elem =
|
||||
element u { u.inner & u.attrs }
|
||||
u.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria?
|
||||
)
|
||||
u.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
common.elem.phrasing |= u.elem
|
||||
|
||||
## Code Fragment: <code>
|
||||
|
||||
code.elem =
|
||||
@@ -229,7 +270,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
sup.elem =
|
||||
element sup { sup.inner & sup.attrs }
|
||||
sup.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
sup.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -240,7 +285,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
sub.elem =
|
||||
element sub { sub.inner & sub.attrs }
|
||||
sub.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
sub.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -295,18 +344,41 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
bdo.elem =
|
||||
element bdo { bdo.inner & bdo.attrs }
|
||||
bdo.attrs =
|
||||
( common.attrs ) # dir required in Schematron
|
||||
( common.attrs # dir required in Schematron
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
bdo.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
common.elem.phrasing |= bdo.elem
|
||||
|
||||
## Bidirectional Isolate: <bdi>
|
||||
|
||||
bdi.elem =
|
||||
element bdi { bdi.inner & bdi.attrs }
|
||||
bdi.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
bdi.inner =
|
||||
( common.inner.phrasing )
|
||||
|
||||
common.elem.phrasing |= bdi.elem
|
||||
|
||||
## Line Break: <br>
|
||||
|
||||
br.elem =
|
||||
element br { br.inner & br.attrs }
|
||||
br.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
br.inner =
|
||||
( empty )
|
||||
|
||||
@@ -317,7 +389,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
wbr.elem =
|
||||
element wbr { wbr.inner & wbr.attrs }
|
||||
wbr.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
wbr.inner =
|
||||
( empty )
|
||||
|
||||
|
||||
@@ -0,0 +1,240 @@
|
||||
# #####################################################################
|
||||
## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 #
|
||||
# #####################################################################
|
||||
|
||||
# #####################################################################
|
||||
## RDFa Datatypes #
|
||||
# #####################################################################
|
||||
|
||||
common.data.rdfa.safecurie =
|
||||
xsd:string {
|
||||
pattern = "\[(([\i-[:]][\c-[:]]*)?:)?[^\s]+\]"
|
||||
minLength = "3"
|
||||
}
|
||||
common.data.rdfa.curie =
|
||||
xsd:string {
|
||||
pattern = "(([\i-[:]][\c-[:]]*)?:)?[^\s]+"
|
||||
minLength = "1"
|
||||
}
|
||||
common.data.rdfa.term =
|
||||
xsd:string {
|
||||
pattern = "[\i-[:]][/\c-[:]]*"
|
||||
}
|
||||
|
||||
# #####################################################################
|
||||
## RDFa Attributes #
|
||||
# #####################################################################
|
||||
|
||||
common.attrs.rdfa &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.rel?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.prefix =
|
||||
attribute prefix {
|
||||
(
|
||||
xsd:string {
|
||||
pattern = "([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*"
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.property =
|
||||
attribute property {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.resource =
|
||||
attribute resource {
|
||||
( common.data.rdfa.safecurie
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.typeof =
|
||||
attribute typeof {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.vocab =
|
||||
attribute vocab {
|
||||
( common.data.uri.absolute
|
||||
| string ""
|
||||
)
|
||||
}
|
||||
common.attrs.rdfa.about =
|
||||
attribute about {
|
||||
( common.data.rdfa.safecurie
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.content =
|
||||
attribute content {
|
||||
string
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.datatype =
|
||||
attribute datatype {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.rel =
|
||||
attribute rel {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.rev =
|
||||
attribute rev {
|
||||
(
|
||||
list {
|
||||
( common.data.rdfa.term
|
||||
| common.data.rdfa.curie
|
||||
| common.data.uri.absolute
|
||||
)+
|
||||
}
|
||||
| string ""
|
||||
)
|
||||
} & nonRDFaLite
|
||||
common.attrs.rdfa.inlist =
|
||||
attribute inlist {
|
||||
string
|
||||
} & nonRDFaLite
|
||||
|
||||
common.attrs.rdfa.no-rel &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.no-rel-rev &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.property?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
common.attrs.rdfa.no-content-noproperty &=
|
||||
( common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.inlist?
|
||||
)
|
||||
|
||||
common.attrs &= common.attrs.rdfa
|
||||
|
||||
a.attrs &= common.attrs.rdfa.no-rel-rev
|
||||
area.attrs &= common.attrs.rdfa.no-rel
|
||||
base.attrs &= common.attrs.rdfa.no-rel
|
||||
|
||||
link.rdfa.elem.metadata =
|
||||
element link { link.inner & link.rdfa.attrs.metadata }
|
||||
link.rdfa.elem.phrasing =
|
||||
element link { link.inner & link.rdfa.attrs.phrasing }
|
||||
link.rdfa.attrs.metadata =
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& ( ( common.attrs.rdfa.property
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)?
|
||||
)
|
||||
|
|
||||
( common.attrs.rdfa.property?
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)
|
||||
)
|
||||
)
|
||||
& link.attrs.href
|
||||
& common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
)
|
||||
link.rdfa.attrs.phrasing =
|
||||
( common.attrs.basic
|
||||
& common.attrs.i18n
|
||||
& common.attrs.present
|
||||
& common.attrs.other
|
||||
& common.attrs.rdfa.property
|
||||
& ( link.attrs.rel
|
||||
| common.attrs.rdfa.rel
|
||||
)?
|
||||
& link.attrs.href
|
||||
& common.attrs.rdfa.about?
|
||||
& common.attrs.rdfa.prefix?
|
||||
& common.attrs.rdfa.typeof?
|
||||
& common.attrs.rdfa.vocab?
|
||||
& common.attrs.rdfa.content?
|
||||
& common.attrs.rdfa.datatype?
|
||||
& common.attrs.rdfa.resource?
|
||||
& common.attrs.rdfa.rev?
|
||||
& common.attrs.rdfa.inlist?
|
||||
& shared-hyperlink.attrs.hreflang?
|
||||
& shared-hyperlink.attrs.media?
|
||||
& shared-hyperlink.attrs.type?
|
||||
& link.attrs.sizes?
|
||||
# link.attrs.title included in common.attrs
|
||||
)
|
||||
common.elem.metadata |= link.rdfa.elem.metadata
|
||||
common.elem.phrasing |= link.rdfa.elem.phrasing
|
||||
|
||||
meta.name.attrs.name |= common.attrs.rdfa.property
|
||||
meta.name.attrs &= common.attrs.rdfa.no-content-noproperty
|
||||
@@ -10,7 +10,7 @@
|
||||
}
|
||||
edit.attrs.datetime =
|
||||
attribute datetime {
|
||||
common.data.datetime
|
||||
common.data.datetime | common.data.date
|
||||
}
|
||||
|
||||
## Inserts: <ins>
|
||||
@@ -23,9 +23,12 @@
|
||||
( common.attrs
|
||||
& edit.attrs.cite?
|
||||
& edit.attrs.datetime?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
ins.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
ins.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
@@ -42,9 +45,12 @@
|
||||
( common.attrs
|
||||
& edit.attrs.cite?
|
||||
& edit.attrs.datetime?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
del.inner.flow =
|
||||
( common.inner.flow )
|
||||
( common.inner.transparent.flow )
|
||||
del.inner.phrasing =
|
||||
( common.inner.phrasing )
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
element h1 { h1.inner & h1.attrs }
|
||||
h1.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h1.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -24,7 +28,11 @@
|
||||
element h2 { h2.inner & h2.attrs }
|
||||
h2.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h2.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -37,7 +45,11 @@
|
||||
element h3 { h3.inner & h3.attrs }
|
||||
h3.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h3.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -50,7 +62,11 @@
|
||||
element h4 { h4.inner & h4.attrs }
|
||||
h4.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h4.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -63,7 +79,11 @@
|
||||
element h5 { h5.inner & h5.attrs }
|
||||
h5.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h5.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -76,7 +96,11 @@
|
||||
element h6 { h6.inner & h6.attrs }
|
||||
h6.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
h6.inner =
|
||||
( common.inner.phrasing )
|
||||
@@ -89,7 +113,11 @@
|
||||
element hgroup { hgroup.inner & hgroup.attrs }
|
||||
hgroup.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.structure?
|
||||
& ( common.attrs.aria.implicit.structure # not implementing "aria-level property set to the element's outline depth", nor heading role; see http://hsivonen.iki.fi/aria-html5-bis/
|
||||
| common.attrs.aria.role.heading
|
||||
| common.attrs.aria.role.tab
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
hgroup.inner =
|
||||
( h1.elem
|
||||
@@ -111,7 +139,10 @@
|
||||
element address { address.inner & address.attrs }
|
||||
address.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
address.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -8,14 +8,24 @@
|
||||
element section { section.inner & section.attrs }
|
||||
section.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.region
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.alert
|
||||
| common.attrs.aria.role.alertdialog
|
||||
| common.attrs.aria.role.contentinfo
|
||||
| common.attrs.aria.role.dialog
|
||||
| common.attrs.aria.role.log
|
||||
| common.attrs.aria.role.main
|
||||
| common.attrs.aria.role.marquee
|
||||
| common.attrs.aria.role.region
|
||||
| common.attrs.aria.role.status
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.search
|
||||
)?
|
||||
)
|
||||
section.inner =
|
||||
( style.elem.scoped*
|
||||
, common.inner.flow
|
||||
)
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= section.elem
|
||||
|
||||
@@ -25,9 +35,11 @@
|
||||
element nav { nav.inner & nav.attrs }
|
||||
nav.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.navigation
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.navigation
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
nav.inner =
|
||||
( common.inner.flow )
|
||||
@@ -40,12 +52,13 @@
|
||||
element article { article.inner & article.attrs }
|
||||
article.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.application
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.article
|
||||
| common.attrs.aria.landmark.document
|
||||
| common.attrs.aria.landmark.application
|
||||
| common.attrs.aria.landmark.main
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
article.inner =
|
||||
( style.elem*
|
||||
@@ -60,11 +73,12 @@
|
||||
element aside { aside.inner & aside.attrs }
|
||||
aside.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.search
|
||||
| common.attrs.aria.landmark.note
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.note
|
||||
| common.attrs.aria.landmark.complementary
|
||||
| common.attrs.aria.landmark.search
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
aside.inner =
|
||||
( style.elem*
|
||||
@@ -79,9 +93,10 @@
|
||||
element header { header.inner & header.attrs }
|
||||
header.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.banner
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.banner
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
header.inner =
|
||||
( common.inner.flow )
|
||||
@@ -94,12 +109,27 @@
|
||||
element footer { footer.inner & footer.attrs }
|
||||
footer.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
)?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.contentinfo
|
||||
| common.attrs.aria.role.presentation
|
||||
)?
|
||||
)
|
||||
footer.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= footer.elem
|
||||
|
||||
## main content: <main>
|
||||
|
||||
main.elem =
|
||||
element main { main.inner & main.attrs }
|
||||
main.attrs =
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.landmark.main
|
||||
)?
|
||||
)
|
||||
main.inner =
|
||||
( common.inner.flow )
|
||||
|
||||
common.elem.flow |= main.elem
|
||||
|
||||
@@ -50,11 +50,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element table { table.inner & table.attrs }
|
||||
table.attrs =
|
||||
( common.attrs
|
||||
& table.attrs.summary? # obsolete
|
||||
& table.attrs.border?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
table.attrs.summary =
|
||||
attribute summary {
|
||||
table.attrs.border =
|
||||
attribute border {
|
||||
string
|
||||
}
|
||||
table.inner =
|
||||
@@ -78,7 +78,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element caption { caption.inner & caption.attrs }
|
||||
caption.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
caption.inner =
|
||||
( common.inner.flow )
|
||||
@@ -91,7 +94,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
colgroup.elem =
|
||||
element colgroup { colgroup.inner & colgroup.attrs }
|
||||
colgroup.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
colgroup.attrs.span =
|
||||
attribute span {
|
||||
common.data.integer.positive
|
||||
@@ -108,6 +115,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
col.attrs =
|
||||
( common.attrs
|
||||
& col.attrs.span?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
col.attrs.span =
|
||||
attribute span {
|
||||
@@ -121,7 +131,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
thead.elem =
|
||||
element thead { thead.inner & thead.attrs }
|
||||
thead.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
thead.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -130,7 +144,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
tfoot.elem =
|
||||
element tfoot { tfoot.inner & tfoot.attrs }
|
||||
tfoot.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
tfoot.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -139,7 +157,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
tbody.elem =
|
||||
element tbody { tbody.inner & tbody.attrs }
|
||||
tbody.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
tbody.inner =
|
||||
( tr.elem* )
|
||||
|
||||
@@ -218,7 +240,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& tables.attrs.scope?
|
||||
& tables.attrs.headers?
|
||||
# & tables.attrs.alignment
|
||||
& common.attrs.aria.implicit.th?
|
||||
& ( common.attrs.aria.implicit.th
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
th.inner =
|
||||
( common.inner.phrasing )
|
||||
( common.inner.flow )
|
||||
|
||||
@@ -28,7 +28,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
shared-form.attrs.maxlength =
|
||||
attribute maxlength {
|
||||
common.data.integer.positive #REVISIT should this be non-negative?
|
||||
common.data.integer.non-negative
|
||||
}
|
||||
|
||||
shared-form.attrs.size =
|
||||
@@ -54,10 +54,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.text.attrs.type?
|
||||
& shared-form.attrs.maxlength?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.size?
|
||||
& input.text.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.input
|
||||
)?
|
||||
)
|
||||
@@ -67,7 +67,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.text.attrs.value =
|
||||
attribute value {
|
||||
string #REVISIT "nominally" free of line breaks?
|
||||
form.data.stringwithoutlinebreaks
|
||||
}
|
||||
|
||||
input.elem = input.text.elem
|
||||
@@ -84,7 +84,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.size?
|
||||
& input.password.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.password.attrs.type =
|
||||
attribute type {
|
||||
@@ -92,7 +92,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.password.attrs.value =
|
||||
attribute value {
|
||||
string #REVISIT "nominally" free of line breaks?
|
||||
form.data.stringwithoutlinebreaks
|
||||
}
|
||||
|
||||
input.elem |= input.password.elem
|
||||
@@ -107,7 +107,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.checkbox.attrs.type
|
||||
& input.attrs.checked?
|
||||
& input.checkbox.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.checkbox.attrs.type =
|
||||
attribute type {
|
||||
@@ -130,7 +130,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.radio.attrs.type
|
||||
& input.attrs.checked?
|
||||
& input.radio.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.role.radio
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
)?
|
||||
)
|
||||
input.radio.attrs.type =
|
||||
attribute type {
|
||||
@@ -152,8 +154,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.button.attrs.type
|
||||
& input.button.attrs.value?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
input.button.attrs.type =
|
||||
@@ -177,7 +184,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.submit.attrs.type
|
||||
& input.submit.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.submit.attrs.type =
|
||||
attribute type {
|
||||
@@ -199,7 +206,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.reset.attrs.type
|
||||
& input.reset.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.reset.attrs.type =
|
||||
attribute type {
|
||||
@@ -222,7 +229,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.file.attrs.type
|
||||
& input.file.attrs.accept?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.file.attrs.type =
|
||||
attribute type {
|
||||
@@ -244,6 +251,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& input.hidden.attrs.type
|
||||
& input.hidden.attrs.value?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.hidden.attrs.type =
|
||||
attribute type {
|
||||
@@ -266,8 +274,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.image.attrs.type
|
||||
& input.image.attrs.alt
|
||||
& input.image.attrs.src?
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
input.image.attrs.type =
|
||||
@@ -276,11 +289,11 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.image.attrs.alt =
|
||||
attribute alt {
|
||||
string # XXX non-empty
|
||||
form.data.nonemptystring
|
||||
}
|
||||
input.image.attrs.src =
|
||||
attribute src {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
|
||||
input.elem |= input.image.elem
|
||||
@@ -296,7 +309,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& shared-form.attrs.readonly?
|
||||
& textarea.attrs.rows-and-cols-wf1
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.implicit.input
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.combobox
|
||||
| common.attrs.aria.role.textbox
|
||||
)?
|
||||
#FIXME onfocus, onblur, onselect,onchange
|
||||
)
|
||||
# This is ugly.
|
||||
@@ -333,7 +351,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& option.attrs.selected?
|
||||
& option.attrs.label?
|
||||
& option.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& ( common.attrs.aria.implicit.input
|
||||
| common.attrs.aria.role.option
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
)?
|
||||
)
|
||||
option.attrs.selected =
|
||||
attribute selected {
|
||||
@@ -358,6 +381,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
( common.attrs
|
||||
& optgroup.attrs.label
|
||||
& common-form.attrs.disabled?
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
optgroup.attrs.label =
|
||||
attribute label {
|
||||
@@ -369,13 +395,17 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Selection Menu: <select>
|
||||
|
||||
select.elem =
|
||||
element select { select.inner & select.attrs }
|
||||
element select { select.inner & select.attrs }
|
||||
select.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
& select.attrs.size?
|
||||
& select.attrs.multiple?
|
||||
# FIXME onfocus, onblur, onchange
|
||||
& ( common.attrs.aria.role.listbox # aria-multiselectable depends on "multiple" value; check in assertions
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
select.attrs.size =
|
||||
attribute size {
|
||||
@@ -410,7 +440,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.submit.attrs.type?
|
||||
& button.attrs.value?
|
||||
& common.attrs.aria.implicit.button?
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.submit.attrs.type =
|
||||
attribute type {
|
||||
@@ -428,7 +465,14 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.reset.attrs.type
|
||||
& button.attrs.value? #REVISIT I guess this still affects the DOM
|
||||
& common.attrs.aria.implicit.button?
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.reset.attrs.type =
|
||||
attribute type {
|
||||
@@ -446,8 +490,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs
|
||||
& button.button.attrs.type
|
||||
& button.attrs.value? #REVISIT I guess this still affects the DOM
|
||||
& ( common.attrs.aria
|
||||
| common.attrs.aria.implicit.button
|
||||
& ( common.attrs.aria.implicit.button
|
||||
| common.attrs.aria.role.button
|
||||
| common.attrs.aria.role.link
|
||||
| common.attrs.aria.role.menuitem
|
||||
| common.attrs.aria.role.menuitemcheckbox
|
||||
| common.attrs.aria.role.menuitemradio
|
||||
| common.attrs.aria.role.radio
|
||||
)?
|
||||
)
|
||||
button.button.attrs.type =
|
||||
@@ -470,13 +519,13 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& form.attrs.enctype?
|
||||
& common-form.attrs.name?
|
||||
& form.attrs.accept-charset?
|
||||
& ( common.attrs.aria
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
form.attrs.action =
|
||||
attribute action {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
form.attrs.method =
|
||||
attribute method {
|
||||
@@ -507,7 +556,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
element fieldset { fieldset.inner & fieldset.attrs }
|
||||
fieldset.attrs =
|
||||
( common.attrs
|
||||
& common.attrs.aria.implicit.group?
|
||||
& ( common.attrs.aria?
|
||||
| common.attrs.aria.implicit.region
|
||||
)?
|
||||
)
|
||||
fieldset.inner =
|
||||
( legend.elem? #REVISIT should this be required?
|
||||
@@ -523,7 +574,10 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
label.attrs =
|
||||
( common.attrs
|
||||
& label.attrs.for?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& ( common.attrs.aria.implicit.region
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
label.attrs.for =
|
||||
attribute for {
|
||||
|
||||
@@ -2,12 +2,6 @@
|
||||
## RELAX NG Schema for HTML 5: Web Forms 2.0 Scripting #
|
||||
# #####################################################################
|
||||
|
||||
scripting.attr.form.formchange =
|
||||
attribute onformchange { string }
|
||||
|
||||
scripting.attr.form.forminput =
|
||||
attribute onforminput { string }
|
||||
|
||||
# output.attrs &=
|
||||
# ( scripting.attr.form.formchange?
|
||||
# & scripting.attr.form.forminput?
|
||||
|
||||
@@ -16,7 +16,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
shared-form.attrs.formaction =
|
||||
attribute formaction {
|
||||
common.data.uri
|
||||
common.data.uri.non-empty
|
||||
}
|
||||
|
||||
shared-form.attrs.formenctype =
|
||||
@@ -36,8 +36,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
shared-form.attrs.formmethod.data =
|
||||
( w:string "get"
|
||||
| w:string "post"
|
||||
| w:string "put"
|
||||
| w:string "delete"
|
||||
)
|
||||
|
||||
shared-form.attrs.formtarget =
|
||||
@@ -72,7 +70,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
shared-form.attrs.placeholder =
|
||||
attribute placeholder {
|
||||
string # FIXME line breaks
|
||||
form.data.stringwithoutlinebreaks
|
||||
}
|
||||
|
||||
shared-form.attrs.dirname =
|
||||
attribute dirname {
|
||||
form.data.nonemptystring
|
||||
}
|
||||
|
||||
## Shared attributes for <input>
|
||||
@@ -111,6 +114,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.pattern?
|
||||
& shared-form.attrs.required?
|
||||
& shared-form.attrs.placeholder?
|
||||
& shared-form.attrs.dirname?
|
||||
)
|
||||
|
||||
## Password Field: <input type='password'>, Extensions
|
||||
@@ -190,7 +194,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Global Date and Time: <input type='datetime'>
|
||||
|
||||
input.datetime.elem =
|
||||
element input { input.datetime.attrs }
|
||||
element input { input.datetime.attrs }
|
||||
input.datetime.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -204,7 +208,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.datetime.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.datetime.attrs.type =
|
||||
attribute type {
|
||||
@@ -220,7 +224,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.datetime.attrs.value =
|
||||
attribute value {
|
||||
common.data.datetime
|
||||
w:string "" | common.data.datetime
|
||||
}
|
||||
|
||||
input.elem |= input.datetime.elem
|
||||
@@ -242,7 +246,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.datetime-local.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.datetime-local.attrs.type =
|
||||
attribute type {
|
||||
@@ -258,7 +262,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.datetime-local.attrs.value =
|
||||
attribute value {
|
||||
form.data.datetime-local
|
||||
w:string "" | form.data.datetime-local
|
||||
}
|
||||
|
||||
input.elem |= input.datetime-local.elem
|
||||
@@ -280,7 +284,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.date.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.date.attrs.type =
|
||||
attribute type {
|
||||
@@ -296,7 +300,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.date.attrs.value =
|
||||
attribute value {
|
||||
form.data.date
|
||||
w:string "" | form.data.date
|
||||
}
|
||||
|
||||
input.elem |= input.date.elem
|
||||
@@ -318,7 +322,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.month.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.month.attrs.type =
|
||||
attribute type {
|
||||
@@ -334,7 +338,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.month.attrs.value =
|
||||
attribute value {
|
||||
form.data.month
|
||||
w:string "" | form.data.month
|
||||
}
|
||||
|
||||
input.elem |= input.month.elem
|
||||
@@ -356,7 +360,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.time.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.time.attrs.type =
|
||||
attribute type {
|
||||
@@ -372,7 +376,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.time.attrs.value =
|
||||
attribute value {
|
||||
form.data.time
|
||||
w:string "" | form.data.time
|
||||
}
|
||||
|
||||
input.elem |= input.time.elem
|
||||
@@ -394,7 +398,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& input.week.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.week.attrs.type =
|
||||
attribute type {
|
||||
@@ -410,7 +414,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.week.attrs.value =
|
||||
attribute value {
|
||||
form.data.week
|
||||
w:string "" | form.data.week
|
||||
}
|
||||
|
||||
input.elem |= input.week.elem
|
||||
@@ -431,8 +435,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.attrs.step.float?
|
||||
& shared-form.attrs.readonly?
|
||||
& shared-form.attrs.required?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.number.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.number.attrs.type =
|
||||
attribute type {
|
||||
@@ -448,7 +453,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.number.attrs.value =
|
||||
attribute value {
|
||||
common.data.float
|
||||
w:string "" | common.data.float
|
||||
}
|
||||
|
||||
input.elem |= input.number.elem
|
||||
@@ -468,7 +473,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& input.range.attrs.max?
|
||||
& input.attrs.step.float?
|
||||
& input.range.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.range.attrs.type =
|
||||
attribute type {
|
||||
@@ -511,7 +516,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
)
|
||||
| input.email.attrs.value.single?
|
||||
)?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.email.attrs.type =
|
||||
attribute type {
|
||||
@@ -531,7 +536,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## IRI: <input type='url'>
|
||||
|
||||
input.url.elem =
|
||||
element input { input.url.attrs }
|
||||
element input { input.url.attrs }
|
||||
input.url.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -546,7 +551,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.size?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.url.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.url.attrs.type =
|
||||
attribute type {
|
||||
@@ -562,7 +567,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
## Search: <input type='search'>
|
||||
|
||||
input.search.elem =
|
||||
element input { input.search.attrs }
|
||||
element input { input.search.attrs }
|
||||
input.search.attrs =
|
||||
( common.attrs
|
||||
& common-form.attrs
|
||||
@@ -576,8 +581,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.required?
|
||||
& shared-form.attrs.size?
|
||||
& shared-form.attrs.placeholder?
|
||||
& shared-form.attrs.dirname?
|
||||
& input.search.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.search.attrs.type =
|
||||
attribute type {
|
||||
@@ -585,7 +591,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.search.attrs.value =
|
||||
attribute value {
|
||||
string # FIXME line breaks
|
||||
form.data.stringwithoutlinebreaks
|
||||
}
|
||||
|
||||
input.elem |= input.search.elem
|
||||
@@ -608,7 +614,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.size?
|
||||
& shared-form.attrs.placeholder?
|
||||
& input.tel.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.tel.attrs.type =
|
||||
attribute type {
|
||||
@@ -616,7 +622,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.tel.attrs.value =
|
||||
attribute value {
|
||||
string # FIXME line breaks
|
||||
form.data.stringwithoutlinebreaks
|
||||
}
|
||||
|
||||
input.elem |= input.tel.elem
|
||||
@@ -633,7 +639,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.autofocus?
|
||||
& input.attrs.list?
|
||||
& input.color.attrs.value?
|
||||
& common.attrs.aria.implicit.input?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
input.color.attrs.type =
|
||||
attribute type {
|
||||
@@ -641,7 +647,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
}
|
||||
input.color.attrs.value =
|
||||
attribute value {
|
||||
form.data.color
|
||||
w:string "" | form.data.color
|
||||
}
|
||||
|
||||
input.elem |= input.color.elem
|
||||
@@ -655,7 +661,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& common-form.attrs.name?
|
||||
& common-form.attrs.form?
|
||||
& output.attrs.for?
|
||||
& common.attrs.aria.implicit.region?
|
||||
& common.attrs.aria?
|
||||
)
|
||||
output.attrs.for =
|
||||
attribute for {
|
||||
@@ -677,6 +683,7 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& shared-form.attrs.autofocus?
|
||||
& shared-form.attrs.required?
|
||||
& shared-form.attrs.placeholder?
|
||||
& shared-form.attrs.dirname?
|
||||
& textarea.attrs.rows?
|
||||
& ( ( textarea.attrs.wrap.hard
|
||||
& textarea.attrs.cols
|
||||
@@ -704,7 +711,12 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
datalist.inner =
|
||||
( option.elem* & common.inner.phrasing )
|
||||
datalist.attrs =
|
||||
( common.attrs )
|
||||
( common.attrs
|
||||
& ( common.attrs.aria.role.listbox # aria-multiselectable must be false; check by assertions
|
||||
| common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
|
||||
common.elem.phrasing |= datalist.elem
|
||||
|
||||
@@ -750,8 +762,6 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
# REVISIT should this be case-insensitive in conforming XHTML documents?
|
||||
form.attrs.enctype.data |=
|
||||
( w:string "text/plain" )
|
||||
form.attrs.method.data |=
|
||||
( w:string "put" | w:string "delete" )
|
||||
|
||||
## Fieldset: <fieldset>, extensions
|
||||
|
||||
@@ -773,7 +783,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
& keygen.attrs.keytype?
|
||||
& shared-form.attrs.autofocus?
|
||||
& common-form.attrs?
|
||||
#REVISIT which ARIA attributes needed here
|
||||
& ( common.attrs.aria.role.presentation
|
||||
| common.attrs.aria.role.menuitem
|
||||
)?
|
||||
)
|
||||
keygen.attrs.challenge =
|
||||
attribute challenge {
|
||||
@@ -788,3 +800,9 @@ datatypes w = "http://whattf.org/datatype-draft"
|
||||
|
||||
common.elem.phrasing |= keygen.elem
|
||||
|
||||
## Selection Menu: <select>, Extensions
|
||||
|
||||
select.attrs &=
|
||||
( shared-form.attrs.autofocus?
|
||||
& shared-form.attrs.required?
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
default namespace = "http://www.w3.org/1999/xhtml/html5"
|
||||
default namespace = "http://www.w3.org/1999/xhtml"
|
||||
# #####################################################################
|
||||
## RELAX NG Schema for XHTML 5 #
|
||||
# #####################################################################
|
||||
|
||||
Reference in New Issue
Block a user