mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-14 13:45:36 +03:00
1120 lines
27 KiB
JavaScript
1120 lines
27 KiB
JavaScript
module.exports = [
|
|
{
|
|
html: '<label><input type="button"></label>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<ul role="menubar">' +
|
|
' <!-- Rule 2A: "File" label via aria-labelledby -->' +
|
|
' <li role="menuitem" aria-haspopup="true" aria-labelledby="fileLabel" id="rule2a">' +
|
|
' <span id="fileLabel">File</span>' +
|
|
' <ul role="menu">' +
|
|
' <!-- Rule 2C: "New" label via Namefrom:contents -->' +
|
|
' <li role="menuitem" id="rule2c">New</li>' +
|
|
' <li role="menuitem">Open…</li>' +
|
|
' …' +
|
|
' </ul>' +
|
|
' </li>' +
|
|
'</ul>',
|
|
target: ['#rule2a', '#rule2c'],
|
|
accessibleText: ['File', 'New'],
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<fieldset>' +
|
|
' <legend>Meeting alarms</legend>' +
|
|
' <!-- Rule 2A: "Beep" label given by native HTML label element -->' +
|
|
' <input type="checkbox" id="beep"> <label for="beep">Beep</label> <br>' +
|
|
' <input type="checkbox" id="mtgTitle"> <label for="mtgTitle">Display the meeting title</label> <br>' +
|
|
' <!-- Rule 2B -->' +
|
|
' <input type="checkbox" id="flash">' +
|
|
' <label for="flash">' +
|
|
' Flash the screen' +
|
|
' <!-- Rule 2A: label of text input given by aria-label, "Number of times to flash screen" -->' +
|
|
' <input type="text" value="3" size="2" id="numTimes" title="Number of times to flash screen">' +
|
|
' times' +
|
|
' </label>' +
|
|
'</fieldset>',
|
|
target: ['#beep', '#flash'],
|
|
accessibleText: ['Beep', 'Flash the screen 3 times'],
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t1',
|
|
accessibleText: 'This is a label',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1 t1label" aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t1',
|
|
accessibleText: 'ARIA Label This is a label',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1label" style="display:none">This is a ' +
|
|
'<span style="visibility:hidden">hidden </span>' +
|
|
'<span aria-hidden="true">secret</span></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t1" aria-labelledby="t1label">',
|
|
target: '#t1',
|
|
// accessibleText: 'This is a hidden secret',
|
|
// Note: axe-core insists on child nodes being used as visible, although
|
|
// spec 2A says "directly referenced by aria-labelledby".
|
|
accessibleText: 'This is a',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t1',
|
|
accessibleText: 'ARIA Label',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'id="t1"> of <i>everything</i></div>' +
|
|
'<img alt="Alt text goes here" id="target">' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#target',
|
|
accessibleText: 'Alt text goes here',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'id="t1"> of <i>everything</i></div>' +
|
|
'<input type="image" alt="Alt text goes here" id="target">' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#target',
|
|
accessibleText: 'Alt text goes here',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'id="t1"> of <i>everything</i></div>' +
|
|
'<input type="text" alt="Alt text goes here" id="target">' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#target',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t1',
|
|
accessibleText: 'HTML Label',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label" role="heading">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i title="italics"></i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2label',
|
|
accessibleText: 'This is This is a label of italics',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label" role="heading">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i></i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2label',
|
|
accessibleText: 'This is This is a label of',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label" role="heading">This is ' +
|
|
' <input type="text" value="the value" ' +
|
|
' aria-labelledby="t1label" aria-label="ARIA Label" id="t1">' +
|
|
' of <i role="alert">everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2label',
|
|
accessibleText: 'This is This is a label of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="target" role="heading"><label for="tb1">My form input</label>' +
|
|
'<input type="text" id="tb1"></div>',
|
|
target: '#target',
|
|
accessibleText: 'My form input',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="target" role="heading">' +
|
|
'<input type="text" id="tb1"></div>' +
|
|
'<label for="tb1">My form input</label>',
|
|
target: '#target',
|
|
accessibleText: 'My form input',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label" role="heading">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2label',
|
|
accessibleText: 'This is This is a label of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This is the value of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="hidden" value="the value" ' +
|
|
'Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This is of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input value="the value" ' +
|
|
'aria-labelledby="t1label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This is the value of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <select multiple ' +
|
|
'aria-labelledby="t1label" id="t1">' +
|
|
'<option selected>first</option><option>second</option><option selected>third</option>' +
|
|
'</select> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This is first third of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <textarea ' +
|
|
'aria-labelledby="t1label" id="t1">the value</textarea> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This is the value of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This <span aria-label="not a span">span</span>' +
|
|
' is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">',
|
|
target: '#t2',
|
|
accessibleText: 'This not a span is the value of everything',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="target">' +
|
|
'<select id="select">' +
|
|
' <option selected="selected">Chosen</option>' +
|
|
' <option>Not Selected</option>' +
|
|
'</select>' +
|
|
'</label>' +
|
|
'<input id="target" type="text" />',
|
|
target: '#target',
|
|
accessibleText: 'Chosen',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="select">My Select</label>' +
|
|
'<label for="target">' +
|
|
'<select id="select">' +
|
|
' <option selected="selected">Chosen</option>' +
|
|
' <option>Not Selected</option>' +
|
|
'</select>' +
|
|
'</label>' +
|
|
'<input id="target" type="text" />',
|
|
target: '#target',
|
|
// accessibleText: '',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: 'Chosen',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>' +
|
|
'<span class="label"></span>' +
|
|
'<select id="target">' +
|
|
'<option value="1" selected="selected">Please choose a region</option>' +
|
|
'<option value="2">Coastal</option>' +
|
|
'<option value="3">Forest</option>' +
|
|
'<option value="4">Grasslands</option>' +
|
|
'<option value="5">Mountains</option>' +
|
|
'</select>' +
|
|
'</label>',
|
|
target: '#target',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>' +
|
|
'<select id="select">' +
|
|
' <option selected="selected">Chosen</option>' +
|
|
' <option>Not Selected</option>' +
|
|
'</select>' +
|
|
'</label>' +
|
|
'<input aria-labelledby="select" type="text" id="target" />',
|
|
target: '#target',
|
|
// accessibleText: '',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: 'Chosen',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#" role="presentation" title="Hello"></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#" role="presentation">Hello</a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<button role="presentation">Hello</button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<summary role="presentation">Hello</summary>',
|
|
target: 'summary',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#" role="none" title="Hello"></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#" role="none">Hello</a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<button role="none">Hello</button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<summary role="none">Hello</summary>',
|
|
target: 'summary',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#">Hello<span>World</span></a>',
|
|
target: 'a',
|
|
accessibleText: 'HelloWorld',
|
|
},
|
|
|
|
{
|
|
html: '<a href="#">Hello<div>World</div></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<a href="#"><script> var ajiasdf = true; </script></a>',
|
|
target: 'a',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<label><input type="button"></label>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<button aria-label=" " aria-labelledby=" ">Hello World</button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t2label">This is <input type="text" value="the value" ' +
|
|
'aria-labelledby="t1label" aria-label="ARIA Label" id="t1"> of <i>everything</i></div>' +
|
|
'<div id="shadow"><template shadow>' +
|
|
'<div id="t1label">This is a <b>label</b></div>' +
|
|
'<label for="t1">HTML Label</label>' +
|
|
'<input type="text" id="t2" aria-labelledby="t2label">' +
|
|
'</template></div>',
|
|
target: '#t1',
|
|
accessibleText: 'ARIA Label',
|
|
},
|
|
|
|
{
|
|
html: '<div id="shadow"><template shadow><input type="text" id="t1" title="I will be king"></template></div>',
|
|
target: 'input',
|
|
accessibleText: 'I will be king',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="shadow"><template shadow><slot></slot></template>' +
|
|
'<input type="text" id="t1" title="you will be queen"></div>',
|
|
target: 'input',
|
|
accessibleText: 'you will be queen',
|
|
},
|
|
|
|
{
|
|
html: '<div id="shadow"><template shadow>' +
|
|
'<input type="text" id="t1"><label for="t1"><slot>Fallback content heroes</slot></label>' +
|
|
'</template></div>',
|
|
target: 'input',
|
|
accessibleText: 'Fallback content heroes',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div>' +
|
|
'<figure aria-labelledby="t1">Not part of a11yName <figcaption>Fail</figcaption></figure>',
|
|
target: 'figure',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<figure aria-label="Hello">Not part of a11yName <figcaption>Fail</figcaption></figure>',
|
|
target: 'figure',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<figure>Not part of a11yName <figcaption>Hello</figcaption></figure>',
|
|
target: 'figure',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<figure title="Hello">Not part of a11yName <figcaption></figcaption></figure>',
|
|
target: 'figure',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<figure>Hello<figcaption></figcaption></figure>',
|
|
target: 'figure',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<div><template shadow><figure>Not part of a11yName <figcaption><slot></slot></figcaption></figure></template></div>',
|
|
target: 'figure',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree, we follow Chrome and spec.
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<img aria-labelledby="t1 t2">',
|
|
target: 'img',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<img aria-label="Hello World">',
|
|
target: 'img',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<img alt="Hello World">',
|
|
target: 'img',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<img title="Hello World">',
|
|
target: 'img',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type="button" value="Hello">',
|
|
target: 'input',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<input type="reset" value="Hello">',
|
|
target: 'input',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<input type="submit" value="Hello">',
|
|
target: 'input',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<input type="submit">',
|
|
target: 'input',
|
|
accessibleText: 'Submit',
|
|
},
|
|
|
|
{
|
|
html: '<input type="reset">',
|
|
target: 'input',
|
|
accessibleText: 'Reset',
|
|
},
|
|
|
|
{
|
|
html: '<input type="button" title="Hello">',
|
|
target: 'input',
|
|
accessibleText: 'Hello',
|
|
},
|
|
|
|
{
|
|
html: '<input type="reset" title="Hello">',
|
|
target: 'input',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree. We follow Chrome and spec.
|
|
accessibleText: 'Reset',
|
|
},
|
|
|
|
{
|
|
html: '<input type="submit" title="Hello">',
|
|
target: 'input',
|
|
// accessibleText: 'Hello',
|
|
// Chrome and axe-core disagree. We follow Chrome and spec.
|
|
accessibleText: 'Submit',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<table aria-labelledby="t1 t2"></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<table aria-label="Hello World"></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<table><caption>Hello World</caption><tr><td>Stuff</td></tr></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<table title="Hello World"></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<table summary="Hello World"></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<table summary="Hello World" title="FAIL"></table>',
|
|
target: 'table',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=text aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=password aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=search aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=tel aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=email aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type=url aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=text aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=password aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=search aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=email aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=url aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=tel aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=text></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=password></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=search></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=tel></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=email></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input type=url></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<input></label>',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=text id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=password id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=search id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=tel id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=email id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input type=url id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<input id="t1">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=text placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=password placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=search placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=email placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=tel placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=url placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input placeholder="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=text title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=password title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=search title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=tel title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=email title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=url title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type=text>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input type=password>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input type=search>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input type=tel>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input type=email>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input type=url>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<input>',
|
|
target: 'input',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<textarea aria-labelledby="t1 t2"></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<textarea aria-label="Hello World"></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label>Hello World' + '<textarea></textarea></label>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<label for="t1">Hello World</label>' + '<textarea id="t1"></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<textarea placeholder="Hello World"></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<textarea title="Hello World"></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<textarea></textarea>',
|
|
target: 'textarea',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<input type="image" aria-labelledby="t1 t2">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type="image" aria-label="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type="image" alt="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type="image" title="Hello World">',
|
|
target: 'input',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<input type="image">',
|
|
target: 'input',
|
|
accessibleText: 'Submit',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<a aria-labelledby="t1 t2"></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<a aria-label="Hello World"></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<a href="hey"><span>Hello<span> World</span></span></a>',
|
|
target: 'a',
|
|
// axe-core does not need href to be present, but spec and Chrome do.
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<a title="Hello World"></a>',
|
|
target: 'a',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<a></a>',
|
|
target: 'a',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<a href="example.html">' +
|
|
'<table role="presentation">' +
|
|
'<tr>' +
|
|
'<td>' +
|
|
'Descriptive Link Text' +
|
|
'</td>' +
|
|
'</tr>' +
|
|
'</table>' +
|
|
'</a>',
|
|
target: 'a',
|
|
accessibleText: 'Descriptive Link Text',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<div id="t1">Hello</div><div id="t2">World</div>' +
|
|
'<button aria-labelledby="t1 t2"></button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<button aria-label="Hello World"></button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html:
|
|
'<button><span>Hello<span> World</span></span></button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<button title="Hello World"></button>',
|
|
target: 'button',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<button></button>',
|
|
target: 'button',
|
|
accessibleText: '',
|
|
},
|
|
|
|
{
|
|
html: '<div id="t1">Hello</div><div id="t2">World</div><cite aria-labelledby="t1 t2" style="display:inline">',
|
|
target: 'cite',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<cite aria-label="Hello World" style="display:inline"></cite>',
|
|
target: 'cite',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<cite title="Hello World" style="display:inline"></cite>',
|
|
target: 'cite',
|
|
accessibleText: 'Hello World',
|
|
},
|
|
|
|
{
|
|
html: '<cite style="display:inline"></cite>',
|
|
target: 'cite',
|
|
accessibleText: '',
|
|
},
|
|
];
|