Access key should work on all elements.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Nov 2011 21:58:49 +0000 (21:58 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Nov 2011 21:58:49 +0000 (21:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=71854

Patch by Vineet Chaudhary <vineet.chaudhary@motorola.com> on 2011-11-11
Reviewed by Adam Barth.

Source/WebCore:

As per specification http://dev.w3.org/html5/spec/Overview.html#elements-in-the-dom
says All HTML elements can have the accesskey content attribute set. Adding "accessKey"
attribute idl file as [Reflect].

Test: fast/forms/access-key-for-all-elements.html

* html/HTMLAnchorElement.idl: Removed redundant IDL attribute entries.
* html/HTMLAreaElement.idl: Ditto.
* html/HTMLButtonElement.idl: Ditto.
* html/HTMLElement.idl: Added accessKey IDL attribute.
* html/HTMLInputElement.idl: Ditto.
* html/HTMLLabelElement.idl: Ditto.
* html/HTMLLegendElement.idl: Ditto.
* html/HTMLTextAreaElement.idl: Ditto.

LayoutTests:

Added test case to check whether all elements can also have accessKey attribute.

* fast/forms/access-key-for-all-elements-expected.txt: Added.
* fast/forms/access-key-for-all-elements.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100013 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/forms/access-key-for-all-elements-expected.txt [new file with mode: 0644]
LayoutTests/fast/forms/access-key-for-all-elements.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLAnchorElement.idl
Source/WebCore/html/HTMLAreaElement.idl
Source/WebCore/html/HTMLButtonElement.idl
Source/WebCore/html/HTMLElement.idl
Source/WebCore/html/HTMLInputElement.idl
Source/WebCore/html/HTMLLabelElement.idl
Source/WebCore/html/HTMLLegendElement.idl
Source/WebCore/html/HTMLTextAreaElement.idl

index c062b8503d447c209f1b7990bdd25edfeb6de96c..efe9251fad11cb5f48894e9bf80772a75c4f07fa 100644 (file)
@@ -1,3 +1,15 @@
+2011-11-11  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
+
+        Access key should work on all elements.
+        https://bugs.webkit.org/show_bug.cgi?id=71854
+
+        Reviewed by Adam Barth.
+
+        Added test case to check whether all elements can also have accessKey attribute.
+
+        * fast/forms/access-key-for-all-elements-expected.txt: Added.
+        * fast/forms/access-key-for-all-elements.html: Added.
+
 2011-11-11  Ben Wells  <benwells@chromium.org>
 
         Remove color space information from canvas composited drawImage tests
diff --git a/LayoutTests/fast/forms/access-key-for-all-elements-expected.txt b/LayoutTests/fast/forms/access-key-for-all-elements-expected.txt
new file mode 100644 (file)
index 0000000..8f86076
--- /dev/null
@@ -0,0 +1,527 @@
+This test checks to see if accesskey attributes works all elements.
+
+Check for A tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ABBR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ACRONYM tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ADDRESS tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for APPLET tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for AREA tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ARTICLE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ASIDE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for AUDIO tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for B tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BASE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BASEFONT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BDO tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BGSOUND tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BIG tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BLOCKQUOTE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BODY tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for BUTTON tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for CANVAS tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for CAPTION tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for CENTER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for CITE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for CODE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for COL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for COLGROUP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for COMMAND tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DATALIST tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DD tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DEL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DETAILS tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DFN tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DIR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DIV tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for DT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for EM tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for EMBED tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FIELDSET tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FIGCAPTION tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FIGURE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FONT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FOOTER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FORM tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FRAME tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for FRAMESET tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H1 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H2 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H3 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H4 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H5 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for H6 tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for HEAD tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for HEADER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for HGROUP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for HR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for HTML tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for I tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for IFRAME tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for IMG tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for INPUT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for INS tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for ISINDEX tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for KBD tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for KEYGEN tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LABEL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LAYER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LEGEND tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LI tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LINK tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for LISTING tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for MAP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for MARK tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for MARQUEE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for MENU tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for META tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for METER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NAV tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NOBR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NOEMBED tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NOFRAMES tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NOLAYER tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for NOSCRIPT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for OBJECT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for OL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for OPTGROUP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for OPTION tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for OUTPUT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for P tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for PARAM tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for PLAINTEXT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for PRE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for PROGRESS tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for Q tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for RP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for RT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for RUBY tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for S tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SAMP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SCRIPT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SECTION tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SELECT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SMALL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SOURCE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SPAN tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for STRIKE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for STRONG tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for STYLE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SUB tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SUMMARY tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for SUP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TABLE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TBODY tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TD tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TEXTAREA tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TFOOT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TH tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for THEAD tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TITLE tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TRACK tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for TT tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for U tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for UL tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for VAR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for VIDEO tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for WBR tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+Check for XMP tag
+PASS test_me.accessKey is defined.
+PASS accesskey is 'k'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/LayoutTests/fast/forms/access-key-for-all-elements.html b/LayoutTests/fast/forms/access-key-for-all-elements.html
new file mode 100644 (file)
index 0000000..4c9ddbc
--- /dev/null
@@ -0,0 +1,36 @@
+<html>
+<head>
+<script src="../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p>This test checks to see if accesskey attributes works all elements.</p>
+<div id="test"></div>
+<div id="console"></div>
+
+<script>
+if (window.layoutTestController)
+    layoutTestController.dumpAsText();
+
+var test = new Array("a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdo","bgsound","big","blockquote",
+                     "body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","dir","div","dl","dt",
+                     "em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html",
+                     "i","iframe","img","input","ins","isindex","kbd","keygen","label","layer","legend","li","link","listing","map","mark","marquee","menu","meta","meter","nav",
+                     "nobr","noembed","noframes","nolayer","noscript","object","ol","optgroup","option","output","p","param","plaintext","pre","progress","q","rp","rt","ruby","s",
+                     "samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead",
+                     "title","tr","track","tt","u","ul","var","video","wbr","xmp");
+
+for (var i =0 ; i < test.length; i++) {
+    var parent = document.createElement(test[i]);
+    document.body.appendChild(parent);
+    var test_me = document.getElementsByTagName(test[i])[0];
+    debug('Check for ' + test_me.tagName + ' tag');
+    shouldBeDefined('test_me.accessKey');
+    test_me.accessKey ='k';
+    accesskey = test_me.accessKey; 
+    shouldBe('accesskey',"'k'");
+    debug('');
+}
+</script>
+
+</body>
+</html>
index 3fe448e3cd4c3206f18dd3734b46531ec0a487a7..3bf5bf28f2865fc5b67007503a8303a9acfcdab6 100644 (file)
@@ -1,3 +1,25 @@
+2011-11-11  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
+
+        Access key should work on all elements.
+        https://bugs.webkit.org/show_bug.cgi?id=71854
+
+        Reviewed by Adam Barth.
+
+        As per specification http://dev.w3.org/html5/spec/Overview.html#elements-in-the-dom
+        says All HTML elements can have the accesskey content attribute set. Adding "accessKey"
+        attribute idl file as [Reflect].
+
+        Test: fast/forms/access-key-for-all-elements.html
+
+        * html/HTMLAnchorElement.idl: Removed redundant IDL attribute entries.
+        * html/HTMLAreaElement.idl: Ditto. 
+        * html/HTMLButtonElement.idl: Ditto.
+        * html/HTMLElement.idl: Added accessKey IDL attribute.
+        * html/HTMLInputElement.idl: Ditto.
+        * html/HTMLLabelElement.idl: Ditto.
+        * html/HTMLLegendElement.idl: Ditto.
+        * html/HTMLTextAreaElement.idl: Ditto.
+
 2011-11-11  Mark Hahnenberg  <mhahnenberg@apple.com>
 
         Add jsCast to replace static_cast
index 6b00a0ce7d9b0554b34805ef493995ba5e5f2e56..2553f9b7f3bc08e21d71d18128774ac340548f2b 100644 (file)
@@ -21,7 +21,6 @@
 module html {
 
     interface HTMLAnchorElement : HTMLElement {
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect] DOMString charset;
         attribute [Reflect] DOMString coords;
         attribute [Conditional=DOWNLOAD_ATTRIBUTE, Reflect] DOMString download;
index 3358c051a59826931c0985be730e003eca4efd5f..a14a4701f364f917478f6c4a8f99034d1506fadb 100644 (file)
@@ -21,7 +21,6 @@
 module html {
 
     interface HTMLAreaElement : HTMLElement {
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect] DOMString alt;
         attribute [Reflect] DOMString coords;
         attribute [Reflect, URL] DOMString href;
index 63c471bb308136b0046d4e86db6155e162a7dae7..ff7dab7ba77449f0d4612f701b448a99ba44da9e 100644 (file)
@@ -30,7 +30,6 @@ module html {
         attribute [Reflect] DOMString formTarget;
         readonly attribute ValidityState validity;
 
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect] boolean disabled;
         attribute [Reflect] boolean autofocus;
         attribute [Reflect] DOMString name;
index f467a0474d3e8e76bc7ad717dd6ae809c141745f..714b4fe73efe6178ba15dec2a5db1517c5bdf233 100644 (file)
@@ -37,6 +37,7 @@ module html {
                  attribute boolean           draggable;
                  attribute [Reflect] DOMString webkitdropzone;
                  attribute [Reflect] boolean hidden;
+                 attribute [Reflect] DOMString accessKey;
 
         // Extensions
                  attribute [ConvertNullToNullString] DOMString innerHTML
index d3a1ed7bf7ae6dc20a60e343abdd16a99451d0f6..edd65f0b4a4ff5c9ab782982f41174ced358a743 100644 (file)
@@ -31,7 +31,6 @@ module html {
         attribute [Reflect] DOMString formTarget;
         readonly attribute ValidityState validity;
         attribute [Reflect] DOMString accept;
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect] DOMString align;
         attribute [Reflect] DOMString alt;
         attribute boolean checked;
index c946bc40e963ad8394f04edfcb2e6bef7029b302..9460418cdf0a78a8f1f9d97d775003ca45f00ac3 100644 (file)
@@ -22,7 +22,6 @@ module html {
 
     interface HTMLLabelElement : HTMLElement {
         readonly attribute HTMLFormElement form;
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect=for] DOMString htmlFor;
         readonly attribute HTMLElement control;
     };
index 750f32a4c1f2bba1301bddcee8d36d93931c83b4..8cda34f583da74b53175677d3232d2968832ced0 100644 (file)
@@ -22,7 +22,6 @@ module html {
 
     interface HTMLLegendElement : HTMLElement {
         readonly attribute HTMLFormElement form;
-        attribute [Reflect] DOMString accessKey;
         attribute [Reflect] DOMString align;
     };
 
index 8031d24baffcc508e0488834a085c9b7df060f2e..f12c21d6753a027ed78308580be530dbb5e18c12 100644 (file)
@@ -25,7 +25,6 @@ module html {
         attribute [ConvertNullToNullString] DOMString defaultValue;
         readonly attribute HTMLFormElement form;
         readonly attribute ValidityState validity;
-        attribute [Reflect] DOMString accessKey;
         attribute long cols;
         attribute [Reflect] boolean disabled;
         attribute [Reflect] boolean autofocus;