]> code.delx.au - gnu-emacs-elpa/blob - core-scripting.rnc
Refine some ARIA checking to sync w/ current spec
[gnu-emacs-elpa] / core-scripting.rnc
1 datatypes w = "http://whattf.org/datatype-draft"
2
3 # #####################################################################
4 ## RELAX NG Schema for HTML 5: Core Scripting #
5 # #####################################################################
6
7 # #####################################################################
8 ## Scripting Elements
9
10 ## Inline Scripts: <script>
11
12 script.elem.embedded =
13 element script { script.inner.embedded & script.attrs.embedded }
14 script.attrs.embedded =
15 ( common.attrs
16 & script.attrs.type?
17 & script.attrs.language? # restricted in Schematron
18 & embedded.content.attrs.crossorigin?
19 & ( common.attrs.aria.role.presentation
20 | common.attrs.aria.role.menuitem
21 )?
22 )
23 script.elem.imported =
24 element script { script.inner.imported & script.attrs.imported }
25 script.attrs.imported =
26 ( common.attrs
27 & script.attrs.src?
28 & script.attrs.defer?
29 & script.attrs.async?
30 & script.attrs.type?
31 & script.attrs.charset?
32 & script.attrs.language? # restricted in Schematron
33 & embedded.content.attrs.crossorigin?
34 & ( common.attrs.aria.role.presentation
35 | common.attrs.aria.role.menuitem
36 )?
37 )
38 script.attrs.src =
39 attribute src {
40 common.data.uri.non-empty
41 }
42 script.attrs.defer =
43 attribute defer {
44 w:string "defer" | w:string ""
45 }
46 script.attrs.async =
47 attribute async {
48 w:string "async" | w:string ""
49 } & v5only
50 script.attrs.type =
51 attribute type {
52 common.data.mimetype # XXX without charset parameter!
53 }
54 script.attrs.charset =
55 attribute charset {
56 common.data.charset
57 }
58 script.attrs.language =
59 attribute language {
60 string
61 }
62 script.inner.embedded =
63 ( common.inner.anything )
64 script.inner.imported =
65 ( common.inner.anything )
66
67 script.elem =
68 ( script.elem.embedded
69 | script.elem.imported
70 )
71
72 common.elem.metadata |= script.elem
73 common.elem.phrasing |= script.elem
74
75 ## Fallback Unscripted Content: <noscript>
76
77 noscript.elem.head =
78 element noscript { noscript.inner.head & noscript.attrs }
79 & HTMLonly
80 noscript.inner.head =
81 ( link.elem
82 | meta.http-equiv.default-style.elem
83 | meta.http-equiv.refresh.elem
84 | style.elem
85 )*
86 noscript.elem.phrasing =
87 element noscript { noscript.inner.phrasing & noscript.attrs }
88 & HTMLonly
89 noscript.inner.phrasing =
90 ( common.inner.phrasing )
91 noscript.elem.flow =
92 element noscript { noscript.inner.flow & noscript.attrs }
93 & HTMLonly
94 noscript.inner.flow =
95 ( common.inner.flow )
96 noscript.attrs =
97 ( common.attrs
98 & ( common.attrs.aria.role.presentation
99 | common.attrs.aria.role.menuitem
100 )?
101 )
102
103 common.elem.metadata |= noscript.elem.head
104 common.elem.phrasing |= noscript.elem.phrasing
105 common.elem.flow |= noscript.elem.flow
106
107 # #####################################################################
108 ## Event Handler Attribute Definitions
109
110 common.attrs.scripting &=
111 ( scripting.attr.onabort?
112 & scripting.attr.onblur?
113 & scripting.attr.oncanplay?
114 & scripting.attr.oncanplaythrough?
115 & scripting.attr.onchange?
116 & scripting.attr.onclick?
117 & scripting.attr.onclose?
118 & scripting.attr.oncontextmenu?
119 & scripting.attr.ondblclick?
120 & scripting.attr.ondrag?
121 & scripting.attr.ondragend?
122 & scripting.attr.ondragenter?
123 & scripting.attr.ondragleave?
124 & scripting.attr.ondragover?
125 & scripting.attr.ondragstart?
126 & scripting.attr.ondrop?
127 & scripting.attr.ondurationchange?
128 & scripting.attr.onemptied?
129 & scripting.attr.onended?
130 & scripting.attr.onerror?
131 & scripting.attr.onfocus?
132 & scripting.attr.oninput?
133 & scripting.attr.oninvalid?
134 & scripting.attr.onkeydown?
135 & scripting.attr.onkeypress?
136 & scripting.attr.onkeyup?
137 & scripting.attr.onload?
138 & scripting.attr.onloadeddata?
139 & scripting.attr.onloadedmetadata?
140 & scripting.attr.onloadstart?
141 & scripting.attr.onmousedown?
142 & scripting.attr.onmousemove?
143 & scripting.attr.onmouseout?
144 & scripting.attr.onmouseover?
145 & scripting.attr.onmouseup?
146 & scripting.attr.onmousewheel?
147 & scripting.attr.onpause?
148 & scripting.attr.onplay?
149 & scripting.attr.onplaying?
150 & scripting.attr.onprogress?
151 & scripting.attr.onratechange?
152 & scripting.attr.onreset?
153 & scripting.attr.onscroll?
154 & scripting.attr.onseeked?
155 & scripting.attr.onseeking?
156 & scripting.attr.onselect?
157 & scripting.attr.onshow?
158 & scripting.attr.onstalled?
159 & scripting.attr.onsubmit?
160 & scripting.attr.onsuspend?
161 & scripting.attr.ontimeupdate?
162 & scripting.attr.onvolumechange?
163 & scripting.attr.onwaiting?
164 )
165
166 common.attrs.other &= common.attrs.scripting
167
168 scripting.attr.onabort =
169 attribute onabort { common.data.functionbody }
170 scripting.attr.onblur =
171 attribute onblur { common.data.functionbody }
172 scripting.attr.oncanplay =
173 attribute oncanplay { common.data.functionbody }
174 scripting.attr.oncanplaythrough =
175 attribute oncanplaythrough { common.data.functionbody }
176 scripting.attr.onchange =
177 attribute onchange { common.data.functionbody }
178 scripting.attr.onclick =
179 attribute onclick { common.data.functionbody }
180 scripting.attr.onclose =
181 attribute onclose { common.data.functionbody }
182 scripting.attr.oncontextmenu =
183 attribute oncontextmenu { common.data.functionbody }
184 scripting.attr.ondblclick =
185 attribute ondblclick { common.data.functionbody }
186 scripting.attr.ondrag =
187 attribute ondrag { common.data.functionbody }
188 scripting.attr.ondragend =
189 attribute ondragend { common.data.functionbody }
190 scripting.attr.ondragenter =
191 attribute ondragenter { common.data.functionbody }
192 scripting.attr.ondragleave =
193 attribute ondragleave { common.data.functionbody }
194 scripting.attr.ondragover =
195 attribute ondragover { common.data.functionbody }
196 scripting.attr.ondragstart =
197 attribute ondragstart { common.data.functionbody }
198 scripting.attr.ondrop =
199 attribute ondrop { common.data.functionbody }
200 scripting.attr.ondurationchange =
201 attribute ondurationchange { common.data.functionbody }
202 scripting.attr.onemptied =
203 attribute onemptied { common.data.functionbody }
204 scripting.attr.onended =
205 attribute onended { common.data.functionbody }
206 scripting.attr.onerror =
207 attribute onerror { common.data.functionbody }
208 scripting.attr.onfocus =
209 attribute onfocus { common.data.functionbody }
210 scripting.attr.onformchange =
211 attribute onformchange { common.data.functionbody }
212 scripting.attr.onforminput =
213 attribute onforminput { common.data.functionbody }
214 scripting.attr.oninput =
215 attribute oninput { common.data.functionbody }
216 scripting.attr.oninvalid =
217 attribute oninvalid { common.data.functionbody }
218 scripting.attr.onkeydown =
219 attribute onkeydown { common.data.functionbody }
220 scripting.attr.onkeypress =
221 attribute onkeypress { common.data.functionbody }
222 scripting.attr.onkeyup =
223 attribute onkeyup { common.data.functionbody }
224 scripting.attr.onload =
225 attribute onload { common.data.functionbody }
226 scripting.attr.onloadeddata =
227 attribute onloadeddata { common.data.functionbody }
228 scripting.attr.onloadedmetadata =
229 attribute onloadedmetadata { common.data.functionbody }
230 scripting.attr.onloadstart =
231 attribute onloadstart { common.data.functionbody }
232 scripting.attr.onmousedown =
233 attribute onmousedown { common.data.functionbody }
234 scripting.attr.onmousemove =
235 attribute onmousemove { common.data.functionbody }
236 scripting.attr.onmouseout =
237 attribute onmouseout { common.data.functionbody }
238 scripting.attr.onmouseover =
239 attribute onmouseover { common.data.functionbody }
240 scripting.attr.onmouseup =
241 attribute onmouseup { common.data.functionbody }
242 scripting.attr.onmousewheel =
243 attribute onmousewheel { common.data.functionbody }
244 scripting.attr.onpause =
245 attribute onpause { common.data.functionbody }
246 scripting.attr.onplay =
247 attribute onplay { common.data.functionbody }
248 scripting.attr.onplaying =
249 attribute onplaying { common.data.functionbody }
250 scripting.attr.onprogress =
251 attribute onprogress { common.data.functionbody }
252 scripting.attr.onratechange =
253 attribute onratechange { common.data.functionbody }
254 scripting.attr.onreset =
255 attribute onreset { common.data.functionbody }
256 scripting.attr.onscroll =
257 attribute onscroll { common.data.functionbody }
258 scripting.attr.onseeked =
259 attribute onseeked { common.data.functionbody }
260 scripting.attr.onseeking =
261 attribute onseeking { common.data.functionbody }
262 scripting.attr.onselect =
263 attribute onselect { common.data.functionbody }
264 scripting.attr.onshow =
265 attribute onshow { common.data.functionbody }
266 scripting.attr.onstalled =
267 attribute onstalled { common.data.functionbody }
268 scripting.attr.onsubmit =
269 attribute onsubmit { common.data.functionbody }
270 scripting.attr.onsuspend =
271 attribute onsuspend { common.data.functionbody }
272 scripting.attr.ontimeupdate =
273 attribute ontimeupdate { common.data.functionbody }
274 scripting.attr.onvolumechange =
275 attribute onvolumechange { common.data.functionbody }
276 scripting.attr.onwaiting =
277 attribute onwaiting { common.data.functionbody }
278
279 # scripting.attr.common =
280 # ( scripting.attr.mouse
281 # & scripting.attr.keyboard
282 # & scripting.attr.focus
283 # )
284 #
285 # scripting.attr.mouse =
286 # ( scripting.attr.mouse.click?
287 # & scripting.attr.mouse.dblclick?
288 # & scripting.attr.mouse.down?
289 # & scripting.attr.mouse.up?
290 # & scripting.attr.mouse.over?
291 # & scripting.attr.mouse.move?
292 # & scripting.attr.mouse.out?
293 # )
294 # scripting.attr.mouse.click =
295 # attribute onclick { string }
296 # scripting.attr.mouse.dblclick =
297 # attribute ondblclick { string }
298 # scripting.attr.mouse.down =
299 # attribute onmousedown { string }
300 # scripting.attr.mouse.up =
301 # attribute onmouseup { string }
302 # scripting.attr.mouse.over =
303 # attribute onmouseover { string }
304 # scripting.attr.mouse.move =
305 # attribute onmousemove { string }
306 # scripting.attr.mouse.out =
307 # attribute onmouseout { string }
308 #
309 # scripting.attr.keyboard =
310 # ( scripting.attr.keyboard.press?
311 # & scripting.attr.keyboard.down?
312 # & scripting.attr.keyboard.up?
313 # )
314 # scripting.attr.keyboard.press =
315 # attribute onkeypress { string }
316 # scripting.attr.keyboard.down =
317 # attribute onkeydown { string }
318 # scripting.attr.keyboard.up =
319 # attribute onkeyup { string }
320 #
321 #
322 # scripting.attr.focus =
323 # ( scripting.attr.focus.gain?
324 # & scripting.attr.focus.lose?
325 # )
326 # scripting.attr.focus.gain =
327 # attribute onfocus { string }
328 # scripting.attr.focus.lose =
329 # attribute onblur { string }
330 #
331 # scripting.attr.loading =
332 # ( scripting.attr.loading.load?
333 # & scripting.attr.loading.unload?
334 # )
335 # scripting.attr.loading.load =
336 # attribute onload { string }
337 # scripting.attr.loading.unload =
338 # attribute onunload { string }
339
340
341 # #####################################################################
342 # Event Handler Attribute Assignments
343
344 # body.attrs &= scripting.attr.loading