| Index: LayoutTests/accessibility/computed-role.html
|
| diff --git a/LayoutTests/accessibility/computed-role.html b/LayoutTests/accessibility/computed-role.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..43524ad8b6eca6c2b0c85fc882d158f17e3d0bcb
|
| --- /dev/null
|
| +++ b/LayoutTests/accessibility/computed-role.html
|
| @@ -0,0 +1,234 @@
|
| +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
| +<html>
|
| +<head>
|
| + <script src="../resources/js-test.js"></script>
|
| +</head>
|
| +
|
| +<body data-role="document" data-knownFailure>
|
| + <div id="test-cases">
|
| + <div role="alert" aria-label="This is an alert"></div>
|
| +
|
| + <div role="alertdialog" aria-label="This is an alert dialog"></div>
|
| +
|
| + <div role="application" aria-label="This is an application"></div>
|
| +
|
| + <div role="article">This is an article</div>
|
| + <article data-role="article">This is an article</article>
|
| +
|
| + <div role="banner">This is a banner</div>
|
| + <header data-role="banner">This is a banner</header>
|
| +
|
| + <div role="button">This is a button</div>
|
| + <input type="button" value="This is a button" data-role="button">
|
| + <button data-role="button">This is a button</button>
|
| +
|
| + <div role="complementary">This is a complementary</div>
|
| + <aside data-role="complementary">This is a complementary</aside>
|
| +
|
| + <fieldset data-role="group">
|
| + <div role="checkbox" aria-label="This is a checkbox"></div>
|
| + <label for="check">This is a checkbox</label>
|
| + <input type="checkbox" id="check" data-role="checkbox">
|
| + </fieldset>
|
| +
|
| + <div role="dialog">This is a dialog</div>
|
| + <dialog data-role="dialog" data-knownFailure>This is a dialog</dialog>
|
| +
|
| + <div role="directory" data-knownFailure>This is a directory</div>
|
| +
|
| + <div role="grid" data-knownFailure>
|
| + <div role="row">
|
| + <div role="columnheader" data-knownFailure>
|
| + This is a columnheader
|
| + </div>
|
| + </div>
|
| + <div role="row">
|
| + <div role="gridcell">
|
| + This is a gridcell
|
| + </div>
|
| + </div>
|
| + </div>
|
| +
|
| + <div role="combobox">This is combobox</div>
|
| + <input type="text" list="suggestions" data-role="combobox">
|
| + <datalist id="suggestions">
|
| + <option value="suggestion1" label="suggestion1">
|
| + <option value="suggestion2" label="suggestion2">
|
| + </datalist>
|
| +
|
| + <div role="definition">This is a definition</div>
|
| +
|
| + <div role="document">This is a document</div>
|
| +
|
| + <div role="form">This is a form</div>
|
| +
|
| + <div role="group">This is a group</div>
|
| + <details data-role="group" data-knownFailure>
|
| + <summary>This is a summary</summary>
|
| + This is a group
|
| + </details>
|
| +
|
| + <div role="heading">This is a heading</div>
|
| + <h1 data-role="heading">This is a heading</h1>
|
| + <h2 data-role="heading">This is a heading</h2>
|
| + <h3 data-role="heading">This is a heading</h3>
|
| + <h4 data-role="heading">This is a heading</h4>
|
| + <h5 data-role="heading">This is a heading</h5>
|
| + <h6 data-role="heading">This is a heading</h6>
|
| +
|
| + <div role="img">This is an image</div>
|
| + <img src="broken.png" data-role="img">
|
| +
|
| + <div role="link">This is a link</div>
|
| + <a href="#" data-role="link">This is a link</a>
|
| + <map name="map">
|
| + <area shape=rect coords="0, 0, 10, 10" href="#" data-role="link">
|
| + </map>
|
| +
|
| + <div role="list">This is a list</div>
|
| + <ul data-role="list"><li data-role="listitem">This is a list item</li></ul>
|
| + <ol data-role="list"><li data-role="listitem">This is a list item</li></ol>
|
| +
|
| + <div role="listbox">This is a listbox</div>
|
| + <select data-role="listbox" size="1" data-knownFailure>
|
| + <option value="1">First option</option>
|
| + <option value="2">Second</option>
|
| + </select>
|
| +
|
| + <div role="log">This is a log</div>
|
| +
|
| + <div role="main">This is main</div>
|
| + <main data-role="main">This is main</main>
|
| +
|
| + <div role="marquee">This is a marquee</div>
|
| +
|
| + <div role="math">This is math</div>
|
| +
|
| + <div role="menu">This is a menu</div>
|
| +
|
| + <div role="menubar">This is a menubar</div>
|
| +
|
| + <div role="menuitem">This is a menuitem</div>
|
| + <menu type="popup">
|
| + <menuitem command="doSomething" data-role="menuitem" data-knownFailure>This is a menuitem</menuitem>
|
| + </menu>
|
| +
|
| + <div role="menuitemcheckbox">This is a menuitemcheckbox</div>
|
| +
|
| + <div role="menuitemradio">This is a menuitemradio</div>
|
| +
|
| + <div role="note">This is a note</div>
|
| +
|
| + <div role="navigation">This is a navigation</div>
|
| + <nav data-role="navigation">This is a navigation</nav>
|
| +
|
| + <div role="option">This is an option</div>
|
| + <select multiple>
|
| + <option value="1" data-role="option">First option</option>
|
| + <option value="2" data-role="option">Second</option>
|
| + </select>
|
| +
|
| + <div role="presentation">This is presentation</div>
|
| + <nav role="presentation">This is presentation, too</nav>
|
| +
|
| + <div role="progressbar">This is a progressbar</div>
|
| + <progress data-role="progressbar" max="100">10</progress>
|
| +
|
| + <div role="radio">This is a radiobutton</div>
|
| + <input type="radio" data-role="radio">
|
| +
|
| + <div role="radiogroup">This is a radiogroup</div>
|
| +
|
| + <div role="region">This is a region</div>
|
| + <section data-role="region">This is a region</section>
|
| +
|
| + <div role="scrollbar">This is a scrollbar</div>
|
| +
|
| + <div role="search">This is a search</div>
|
| +
|
| + <div role="separator">This is a separator</div>
|
| + <hr data-role="separator">
|
| +
|
| + <div role="slider">This is a slider</div>
|
| + <input type="range" data-role="slider" value="5" max="10">
|
| +
|
| + <div role="spinbutton">This is a spinbutton</div>
|
| + <input type="number" data-role="spinbutton">
|
| +
|
| + <div role="status">This is a status</div>
|
| + <output data-role="status"></output>
|
| +
|
| + <div role="tablist">
|
| + <div role="tab">This is a tab</div>
|
| + </div>
|
| +
|
| + <div role="tabpanel">This is a tabpanel</div>
|
| +
|
| + <button role="text">This is static text</button>
|
| +
|
| + <div role="textbox" data-knownFailure>This is a textbox</div>
|
| + <input type="email" data-role="textbox" data-knownFailure>
|
| + <input type="password" data-role="textbox" data-knownFailure>
|
| + <input type="search" data-role="textbox" data-knownFailure>
|
| + <input type="tel" data-role="textbox" data-knownFailure>
|
| + <input type="text" data-role="textbox" data-knownFailure>
|
| + <input type="url" data-role="textbox" data-knownFailure>
|
| +
|
| + <div role="timer">This is a timer</div>
|
| +
|
| + <div role="toolbar">This is a toolbar</div>
|
| + <menu type="toolbar" data-role="toolbar" data-knownFailure>
|
| + <menuitem onclick="location='help.html'" label="Help">
|
| + <menuitem onclick="location='about.html'" label="About">
|
| + </menu>
|
| +
|
| + <div role="tooltip">This is a tooltip</div>
|
| +
|
| + <div role="tree">This is a tree</div>
|
| +
|
| + <div role="treegrid" data-knownFailure>This is a treegrid</div>
|
| +
|
| + <div role="treeitem">This is a treeitem</div>
|
| +
|
| + <!-- also works in SVG -->
|
| + <svg version="1.1" width="300" height="200" aria-labelledby="svg-title">
|
| + <title id="svg-title">Green rectangle</title>
|
| + <a xlink:href="http://example.com" tabindex="0" role="link">
|
| + <rect width="75" height="50" rx="20" ry="20" fill="#90ee90" stroke="#228b22" stroke-fill="1" />
|
| + <text x="35" y="30" font-size="1em" text-anchor="middle" fill="#000000">Website</text>
|
| + </a>
|
| + </svg>
|
| + </div>
|
| +<script>
|
| +description("");
|
| +
|
| +if (window.testRunner) {
|
| + testRunner.dumpAsText();
|
| +
|
| + var roleElements = document.querySelectorAll('div[role]');
|
| + for (var i = 0; i < roleElements.length; i++) {
|
| + var roleElement = roleElements[i];
|
| + var role = roleElement.getAttribute('role');
|
| + if (!roleElement.hasAttribute('data-knownFailure')) {
|
| + var expectedRoleString = '"' + role + '"';
|
| + shouldBe('roleElement.computedRole', expectedRoleString);
|
| + }
|
| + var implicitRoleElements = document.querySelectorAll('[data-role=' + role + ']');
|
| + for (var j = 0; j < implicitRoleElements.length; j++) {
|
| + var implicitRoleElement = implicitRoleElements[j];
|
| + if (!implicitRoleElement.hasAttribute('data-knownFailure')) {
|
| + var expectedRoleString = '"' + role + '"';
|
| + shouldBe('implicitRoleElement.computedRole', expectedRoleString);
|
| + }
|
| + }
|
| + }
|
| + var svgAElement = document.querySelector('svg a');
|
| + var expectedSvgARole = '"' + svgAElement.getAttribute('role') + '"';
|
| + shouldBe('svgAElement.computedRole', expectedSvgARole);
|
| +
|
| + document.querySelector('#test-cases').style.display = 'none';
|
| +}
|
| +</script>
|
| +
|
| +</body>
|
| +</html>
|
|
|