Bug 427969 - Undefined attribute name for HTML 5
The following HTML 5 new attributes are added to the schema:
Core: dropzone, role, translate
Events: oncancel, onclose, oncuechange, ondragexit, onmouseenter, onmouseleave, onresize, ontoggle, onvolumechange
BODY Events: onafterprint, onbeforeprint, onbeforeunload, onhashchange, onmessage, onoffline, ononline, onpagehide, onpageshow, onpopstate, onstorage, onunload
Signed-off-by: vrubezhny <vrubezhny@exadel.com>
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTML5AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTML5AttributeCollection.java
index df901a9..00cd7d1 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTML5AttributeCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTML5AttributeCollection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2013 IBM Corporation and others.
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -20,12 +20,105 @@
public class HTML5AttributeCollection extends AttributeCollection implements HTML50Namespace {
/** html5 core attribs */
- private static final String[] CORE = {ATTR_NAME_ACCESSKEY, ATTR_NAME_CLASS, ATTR_NAME_CONTENT_EDITABLE, ATTR_NAME_CONTEXT_MENU, ATTR_NAME_DIR, ATTR_NAME_DRAGGABLE, ATTR_NAME_HIDDEN, ATTR_NAME_ID, ATTR_NAME_LANG, ATTR_NAME_SPELLCHECK,ATTR_NAME_STYLE, ATTR_NAME_TABINDEX, ATTR_NAME_TITLE};
+ private static final String[] CORE = {
+ ATTR_NAME_ACCESSKEY,
+ ATTR_NAME_CLASS,
+ ATTR_NAME_CONTENT_EDITABLE,
+ ATTR_NAME_CONTEXT_MENU,
+ ATTR_NAME_DIR,
+ ATTR_NAME_DRAGGABLE,
+ ATTR_NAME_DROPZONE,
+ ATTR_NAME_HIDDEN,
+ ATTR_NAME_ID,
+ ATTR_NAME_LANG,
+ ATTR_NAME_ROLE,
+ ATTR_NAME_SPELLCHECK,
+ ATTR_NAME_STYLE,
+ ATTR_NAME_TABINDEX,
+ ATTR_NAME_TITLE,
+ ATTR_NAME_TRANSLATE};
+
/** events for HTML5. */
- private static final String[] EVENTS = {ATTR_NAME_ONABORT, ATTR_NAME_ONBLUR, ATTR_NAME_ONCAN_PLAY, ATTR_NAME_ONCAN_PLAY_THROUGH, ATTR_NAME_ONCHANGE, ATTR_NAME_ONCLICK, ATTR_NAME_ONCONTEXT_MENU, ATTR_NAME_ONDBLCLICK, ATTR_NAME_ONDRAG, ATTR_NAME_ONDRAG_END, ATTR_NAME_ONDRAG_ENTER, ATTR_NAME_ONDRAG_LEAVE,
- ATTR_NAME_ONDRAG_OVER, ATTR_NAME_ONDRAG_START, ATTR_NAME_ONDROP, ATTR_NAME_ONDURATION_CHANGE, ATTR_NAME_ONEMPTIED, ATTR_NAME_ONENDED, ATTR_NAME_ONERROR, ATTR_NAME_ONFOCUS, ATTR_NAME_ONFORM_CHANGE, ATTR_NAME_ONFORM_INPUT, ATTR_NAME_ONINPUT, ATTR_NAME_ONINVALID,ATTR_NAME_ONKEYPRESS, ATTR_NAME_ONKEYDOWN, ATTR_NAME_ONKEYUP,
- ATTR_NAME_ONLOAD, ATTR_NAME_ONLOAD_START, ATTR_NAME_ONLOADED_DATA, ATTR_NAME_ONLOADED_METADATA, ATTR_NAME_ONMOUSEDOWN, ATTR_NAME_ONMOUSEUP, ATTR_NAME_ONMOUSEOVER, ATTR_NAME_ONMOUSEMOVE, ATTR_NAME_ONMOUSEOUT, ATTR_NAME_ONMOUSE_WHEEL, ATTR_NAME_ONPAUSE, ATTR_NAME_ONPLAY, ATTR_NAME_ONPLAYING, ATTR_NAME_ONPROGRESS,
- ATTR_NAME_ONRATE_CHANGE, ATTR_NAME_ONREADY_STATE_CHANGE, ATTR_NAME_ONSCROLL, ATTR_NAME_ONSEEKED, ATTR_NAME_ONSEEKING, ATTR_NAME_ONSELECT, ATTR_NAME_ONSHOW, ATTR_NAME_ONSTALLED, ATTR_NAME_ONSUBMIT, ATTR_NAME_ONSUSPEND, ATTR_NAME_ONTIME_UPDATE, ATTR_NAME_ONVOLUME_UPDATE, ATTR_NAME_ONWAITING};
+ private static final String[] EVENTS = {
+ ATTR_NAME_ONABORT,
+ ATTR_NAME_ONBLUR,
+ ATTR_NAME_ONCANCEL,
+ ATTR_NAME_ONCAN_PLAY,
+ ATTR_NAME_ONCAN_PLAY_THROUGH,
+ ATTR_NAME_ONCHANGE,
+ ATTR_NAME_ONCLICK,
+ ATTR_NAME_ONCLOSE,
+ ATTR_NAME_ONCONTEXT_MENU,
+ ATTR_NAME_ONCUE_CHANGE,
+ ATTR_NAME_ONDBLCLICK,
+ ATTR_NAME_ONDRAG,
+ ATTR_NAME_ONDRAG_END,
+ ATTR_NAME_ONDRAG_ENTER,
+ ATTR_NAME_ONDRAG_EXIT,
+ ATTR_NAME_ONDRAG_LEAVE,
+ ATTR_NAME_ONDRAG_OVER,
+ ATTR_NAME_ONDRAG_START,
+ ATTR_NAME_ONDROP,
+ ATTR_NAME_ONDURATION_CHANGE,
+ ATTR_NAME_ONEMPTIED,
+ ATTR_NAME_ONENDED,
+ ATTR_NAME_ONERROR,
+ ATTR_NAME_ONFOCUS,
+ ATTR_NAME_ONFORM_CHANGE,
+ ATTR_NAME_ONFORM_INPUT,
+ ATTR_NAME_ONINPUT,
+ ATTR_NAME_ONINVALID,
+ ATTR_NAME_ONKEYDOWN,
+ ATTR_NAME_ONKEYPRESS,
+ ATTR_NAME_ONKEYUP,
+ ATTR_NAME_ONLOAD,
+ ATTR_NAME_ONLOADED_DATA,
+ ATTR_NAME_ONLOADED_METADATA,
+ ATTR_NAME_ONLOAD_START,
+ ATTR_NAME_ONMOUSEDOWN,
+ ATTR_NAME_ONMOUSEENTER,
+ ATTR_NAME_ONMOUSELEAVE,
+ ATTR_NAME_ONMOUSEMOVE,
+ ATTR_NAME_ONMOUSEOUT,
+ ATTR_NAME_ONMOUSEOVER,
+ ATTR_NAME_ONMOUSEUP,
+ ATTR_NAME_ONMOUSE_WHEEL,
+ ATTR_NAME_ONPAUSE,
+ ATTR_NAME_ONPLAY,
+ ATTR_NAME_ONPLAYING,
+ ATTR_NAME_ONPROGRESS,
+ ATTR_NAME_ONRATE_CHANGE,
+ ATTR_NAME_ONREADY_STATE_CHANGE,
+ ATTR_NAME_ONRESET,
+ ATTR_NAME_ONRESIZE,
+ ATTR_NAME_ONSCROLL,
+ ATTR_NAME_ONSEEKED,
+ ATTR_NAME_ONSEEKING,
+ ATTR_NAME_ONSELECT,
+ ATTR_NAME_ONSHOW,
+ ATTR_NAME_ONSTALLED,
+ ATTR_NAME_ONSUBMIT,
+ ATTR_NAME_ONSUSPEND,
+ ATTR_NAME_ONTIME_UPDATE,
+ ATTR_NAME_ONTOGGLE,
+ ATTR_NAME_ONVOLUME_CHANGE,
+ ATTR_NAME_ONVOLUME_UPDATE,
+ ATTR_NAME_ONWAITING};
+
+ /** additional events for body element in HTML5. */
+ private static final String[] BODY_EVENTS = {
+ ATTR_NAME_ONAFTER_PRINT,
+ ATTR_NAME_ONBEFORE_PRINT,
+ ATTR_NAME_ONBEFORE_UNLOAD,
+ ATTR_NAME_ONHASH_CHANGE,
+ ATTR_NAME_ONMESSAGE,
+ ATTR_NAME_ONOFFLINE,
+ ATTR_NAME_ONONLINE,
+ ATTR_NAME_ONPAGEHIDE,
+ ATTR_NAME_ONPAGESHOW,
+ ATTR_NAME_ONPOPSTATE,
+ ATTR_NAME_ONSTORAGE,
+ ATTR_NAME_ONUNLOAD};
protected HTMLAttrDeclImpl create(String attrName) {
HTMLAttrDeclImpl attr = null;
@@ -64,6 +157,11 @@
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_DRAGGABLE, atype, CMAttributeDeclaration.OPTIONAL);
}
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_DROPZONE)) {
+ // (dropzone CDATA #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_DROPZONE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
else if (attrName.equalsIgnoreCase(ATTR_NAME_FORM)) {
// (form CDATA; #IMPLIED)
atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
@@ -111,6 +209,11 @@
atype.setEnumValues(new String[] { ATTR_NAME_PUBDATE });
attr = new HTMLAttrDeclImpl(ATTR_NAME_PUBDATE, atype, CMAttributeDeclaration.OPTIONAL);
}
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ROLE)) {
+ // (role CDATA #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ROLE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
else if (attrName.equalsIgnoreCase(ATTR_NAME_SPELLCHECK)) {
// (spellcheck (EMPTY|TRUE|FALSE) TRUE)
atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
@@ -119,257 +222,323 @@
atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
attr = new HTMLAttrDeclImpl(ATTR_NAME_SPELLCHECK, atype, CMAttributeDeclaration.OPTIONAL);
}
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_TRANSLATE)) {
+ // (translate (EMPTY|TRUE|FALSE) TRUE)
+ atype = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+ String[] values = {ATTR_VALUE_EMPTY, ATTR_VALUE_YES, ATTR_VALUE_NO};
+ atype.setEnumValues(values);
+ atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_YES);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_TRANSLATE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONABORT)) {
// (onabort %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONABORT, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONAFTER_PRINT)) {
+ // (onafterprint %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONAFTER_PRINT, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONBEFORE_PRINT)) {
+ // (onbeforeprint %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONBEFORE_PRINT, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONBEFORE_UNLOAD)) {
+ // (onbeforunload %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONBEFORE_UNLOAD, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCANCEL)) {
+ // (oncancel %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCANCEL, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCAN_PLAY)) {
// (oncanplay %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCAN_PLAY, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCAN_PLAY_THROUGH)) {
// (oncanplaythrough %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCAN_PLAY_THROUGH, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCHANGE)) {
// (onchange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCONTEXT_MENU)) {
// (onacontextmenu %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCONTEXT_MENU, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCLOSE)) {
+ // (onclose %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCLOSE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONCUE_CHANGE)) {
+ // (oncuechange %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONCUE_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG)) {
// (onadrag %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_END)) {
// (ondragend %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_END, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_ENTER)) {
// (ondragenter %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_ENTER, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_EXIT)) {
+ // (ondragexit %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_EXIT, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_LEAVE)) {
// (ondragleave %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_LEAVE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_OVER)) {
// (ondragover %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_OVER, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDRAG_START)) {
// (ondragstart %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDRAG_START, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDROP)) {
// (ondrop %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDROP, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONDURATION_CHANGE)) {
// (ondurationchange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONDURATION_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONEMPTIED)) {
// (onemptied %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONEMPTIED, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONENDED)) {
// (onended %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONENDED, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONERROR)) {
// (onerror %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONERROR, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFOCUS)) {
// (onfocus %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFOCUS, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFORM_CHANGE)) {
// (onformchange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFORM_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONFORM_INPUT)) {
// (onforminput %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONFORM_INPUT, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONHASH_CHANGE)) {
+ // (onhashchange %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONHASH_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONINPUT)) {
// (oninput %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONINPUT, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONINVALID)) {
// (oninvalid %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONINVALID, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOAD)) {
// (onload %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOAD, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOAD_START)) {
// (onloadstart %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOAD_START, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOADED_DATA)) {
// (onloadeddata %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOADED_DATA, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONLOADED_METADATA)) {
// (onloadedmetadata %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONLOADED_METADATA, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMESSAGE)) {
+ // (onmessage %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMESSAGE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSEENTER)) {
+ // (onmouseenter %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSEENTER, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSELEAVE)) {
+ // (onmouseleave %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSELEAVE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONMOUSE_WHEEL)) {
// (onmousewheel %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONMOUSE_WHEEL, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONOFFLINE)) {
+ // (onoffline %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONOFFLINE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONONLINE)) {
+ // (ononline %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONONLINE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPAGEHIDE)) {
+ // (onpagehide %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPAGEHIDE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPAGESHOW)) {
+ // (onpageshow %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPAGESHOW, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPLAY)) {
// (onplay %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPLAY, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPLAYING)) {
// (onplaying %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPLAYING, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPAUSE)) {
// (onpause %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPAUSE, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPOPSTATE)) {
+ // (onpopstate %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPOPSTATE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONPROGRESS)) {
// (onprogress %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONPROGRESS, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONRATE_CHANGE)) {
// (onratechange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONRATE_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONREADY_STATE_CHANGE)) {
// (onreadystatechange %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONREADY_STATE_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONRESIZE)) {
+ // (onresize %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONRESIZE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSCROLL)) {
// (onscroll %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSCROLL, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSEEKED)) {
// (onseeked %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSEEKED, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSEEKING)) {
// (onseeking %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSEEKING, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSELECT)) {
// (onselect %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSELECT, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSHOW)) {
// (onshow %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSHOW, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSTALLED)) {
// (onstalled %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSTALLED, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSTORAGE)) {
+ // (onstalled %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSTORAGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSUBMIT)) {
// (onsubmit %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSUBMIT, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONSUSPEND)) {
// (onsuspend %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONSUSPEND, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONTIME_UPDATE)) {
// (ontimeupdate %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONTIME_UPDATE, atype, CMAttributeDeclaration.OPTIONAL);
-
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONTOGGLE)) {
+ // (ontimeupdate %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONTOGGLE, atype, CMAttributeDeclaration.OPTIONAL);
+ }
+ else if (attrName.equalsIgnoreCase(ATTR_NAME_ONVOLUME_CHANGE)) {
+ // (onvolumechange %Script; #IMPLIED)
+ atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
+ attr = new HTMLAttrDeclImpl(ATTR_NAME_ONVOLUME_CHANGE, atype, CMAttributeDeclaration.OPTIONAL);
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONVOLUME_UPDATE)) {
// (onvolumeupdate %Script; #IMPLIED)
atype = new HTMLCMDataTypeImpl(HTMLCMDataType.SCRIPT);
attr = new HTMLAttrDeclImpl(ATTR_NAME_ONVOLUME_UPDATE, atype, CMAttributeDeclaration.OPTIONAL);
-
}
else if (attrName.equalsIgnoreCase(ATTR_NAME_ONWAITING)) {
// (onwaiting %Script; #IMPLIED)
@@ -399,6 +568,11 @@
getDeclarations(declarations, names);
}
+ public void getBodyEvents(CMNamedNodeMapImpl declarations) {
+ Iterator names = Arrays.asList(BODY_EVENTS).iterator();
+ getDeclarations(declarations, names);
+ }
+
public void createAttributeDeclarations(String elementName, CMNamedNodeMapImpl attributes) {
/* (type %InputType; TEXT) ... should be defined locally.
* (name CDATA #IMPLIED)
@@ -572,7 +746,7 @@
String[] names = {ATTR_NAME_NAME, ATTR_NAME_VALUE, ATTR_NAME_CHECKED, ATTR_NAME_DISABLED, ATTR_NAME_READONLY, ATTR_NAME_SIZE, ATTR_NAME_MAXLENGTH, ATTR_NAME_SRC, ATTR_NAME_ALT, ATTR_NAME_ACCEPT, //<<D215684
ATTR_NAME_WIDTH, ATTR_NAME_HEIGHT, //<D215684
//html5
- ATTR_NAME_AUTOFOCUS
+ ATTR_NAME_AUTOFOCUS, ATTR_NAME_ROLE, ATTR_NAME_TRANSLATE
};
getDeclarations(attributes, Arrays.asList(names).iterator());
//discouraged
@@ -589,9 +763,6 @@
attr = new HTMLAttrDeclImpl(ATTR_NAME_USEMAP, atype, CMAttributeDeclaration.OPTIONAL);
attr.obsolete(true);
attributes.putNamedItem(ATTR_NAME_USEMAP, attr);
-
-
- getDeclarations(attributes, Arrays.asList(names).iterator());
}
/* (href %URI; #IMPLIED)
* (hreflang %LanguageCode; #IMPLIED)
@@ -1350,8 +1521,17 @@
attr = new HTMLAttrDeclImpl(ATTR_NAME_BORDERCOLOR, atype, CMAttributeDeclaration.OPTIONAL);
attr.obsolete(true);
attributes.putNamedItem(ATTR_NAME_BORDERCOLOR, attr);
-
-
+ }
+ /*
+ * CORE + EVENTS + BODY_EVENTS
+ */
+ else if (elementName.equals(HTML40Namespace.ElementName.BODY)){
+ // %coreattrs;
+ getCore(attributes);
+ // %events;
+ getEvents(attributes);
+ // %body_events;
+ getBodyEvents(attributes);
}
}
@@ -1362,4 +1542,8 @@
public static String[] getGlobalEventList(){
return EVENTS;
}
+
+ public static String[] getBodyEventList(){
+ return BODY_EVENTS;
+ }
}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
index 3324a9a..31a642b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -66,6 +66,10 @@
// D205514
};
attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
+
+ //different sets of attributes for html 4 & 5
+ attributeCollection.createAttributeDeclarations(HTML40Namespace.ElementName.BODY, attributes);
+
}
/**
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML50Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML50Namespace.java
index e20fdac..59b2764 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML50Namespace.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML50Namespace.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -50,14 +50,22 @@
String ATTR_NAME_CONTENT_EDITABLE = "contenteditable"; // %coreattrs; //$NON-NLS-1$
String ATTR_NAME_CONTEXT_MENU = "contextmenu"; // %coreattrs; //$NON-NLS-1$
String ATTR_NAME_DRAGGABLE = "draggable"; // %coreattrs; //$NON-NLS-1$
+ String ATTR_NAME_DROPZONE = "dropzone"; // %coreattrs; //$NON-NLS-1$
String ATTR_NAME_ROLE = "role"; // %coreattrs; //$NON_NLS-1$
String ATTR_NAME_SPELLCHECK = "spellcheck"; // %coreattrs; //$NON-NLS-1$
+ String ATTR_NAME_TRANSLATE = "translate"; // %coreattrs; //$NON-NLS-1$
+
+ // event attribute names
String ATTR_NAME_ONABORT = "onabort"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONCANCEL = "oncancel"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONCAN_PLAY = "oncanplay"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONCAN_PLAY_THROUGH = "oncanplaythrough"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONCLOSE = "onclose"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONCONTEXT_MENU = "oncontextmenu"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONCUE_CHANGE = "oncuechange"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONDRAG = "ondrag"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONDRAG_END = "ondragend"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONDRAG_EXIT = "ondragexit"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONDRAG_OVER = "ondragover"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONDRAG_ENTER = "ondragenter"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONDRAG_LEAVE = "ondragleave"; // %event; //$NON-NLS-1$
@@ -72,8 +80,10 @@
String ATTR_NAME_ONINPUT = "oninput"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONINVALID = "oninvalid"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONLOADED_DATA = "onloadeddata"; // %event; //$NON-NLS-1$
- String ATTR_NAME_ONLOADED_METADATA = "onloadedmetadeta"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONLOADED_METADATA = "onloadedmetadata"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONLOAD_START = "onloadstart"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONMOUSEENTER = "onmouseenter"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONMOUSELEAVE = "onmouseleave"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONMOUSE_WHEEL = "onmousewheel"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONPAUSE = "onpause"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONPLAY = "onplay"; // %event; //$NON-NLS-1$
@@ -81,6 +91,7 @@
String ATTR_NAME_ONPROGRESS = "onprogress"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONRATE_CHANGE = "onratechange"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONREADY_STATE_CHANGE = "onreadystatechange"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONRESIZE = "onresize"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONSCROLL = "onscroll"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONSEEKED = "onseeked"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONSEEKING = "onseeking"; // %event; //$NON-NLS-1$
@@ -88,6 +99,8 @@
String ATTR_NAME_ONSTALLED = "onstalled"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONSUSPEND = "onsuspend"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONTIME_UPDATE = "ontimeupdate"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONTOGGLE = "ontoggle"; // %event; //$NON-NLS-1$
+ String ATTR_NAME_ONVOLUME_CHANGE = "onvolumechange"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONVOLUME_UPDATE = "onvolumeupdate"; // %event; //$NON-NLS-1$
String ATTR_NAME_ONWAITING = "onwaiting"; // %event; //$NON-NLS-1$
@@ -133,6 +146,19 @@
String ATTR_NAME_WRAP = "wrap"; //textarea //$NON-NLS-1$
String ATTR_NAME_XMLNS = "xmlns"; //html //$NON-NLS-1$
+ // additional event attribute names for body element
+ String ATTR_NAME_ONAFTER_PRINT = "onafterprint"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONBEFORE_PRINT = "onbeforeprint"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONBEFORE_UNLOAD = "onbeforeunload"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONHASH_CHANGE = "onhashchange"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONMESSAGE = "onmessage"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONOFFLINE = "onoffline"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONONLINE = "ononline"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONPAGEHIDE = "onpagehide"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONPAGESHOW = "onpageshow"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONPOPSTATE = "onpopstate"; // BODY //$NON-NLS-1$
+ String ATTR_NAME_ONSTORAGE = "onstorage"; // BODY //$NON-NLS-1$
+
// Global attributes properties
// for contenteditable (EMPTY|TRUE|FALSE|INHERIT)
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
index 233c47e..1e200cc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
@@ -78,8 +78,6 @@
// D210422
// Accessible Rich Internet Applications (WAI-ARIA)
- private static final String ATTR_NAME_WAI_ARIA_ROLE = "role"; //$NON-NLS-1$
-
private static final String ATTR_NAME_WAI_ARIA = "aria-"; //$NON-NLS-1$
private static final int ATTR_NAME_WAI_ARIA_LENGTH = ATTR_NAME_WAI_ARIA.length();
@@ -182,7 +180,6 @@
if (adec == null) {
if ((attrName.startsWith(ATTR_NAME_DATA) && attrName.length() > ATTR_NAME_DATA_LENGTH) ||
(attrName.startsWith(ATTR_NAME_USER_AGENT_FEATURE) && attrName.length() > ATTR_NAME_USER_AGENT_FEATURE_LENGTH) ||
- attrName.equals(ATTR_NAME_WAI_ARIA_ROLE) ||
(attrName.startsWith(ATTR_NAME_WAI_ARIA) && attrName.length() > ATTR_NAME_WAI_ARIA_LENGTH)) {
if (isHTML5(target))
continue;