tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_struct_ariagrid.html (5375B)


      1 <!DOCTYPE html>
      2 <html>
      3 
      4 <head>
      5  <title>Table accessible tree and table interface tests for ARIA grid</title>
      6  <link rel="stylesheet" type="text/css"
      7        href="chrome://mochikit/content/tests/SimpleTest/test.css" />
      8 
      9  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
     10 
     11  <script type="application/javascript"
     12          src="../common.js"></script>
     13  <script type="application/javascript"
     14          src="../role.js"></script>
     15  <script type="application/javascript"
     16          src="../table.js"></script>
     17 
     18  <script type="application/javascript">
     19    function doTest() {
     20      // ////////////////////////////////////////////////////////////////////////
     21      // Pure ARIA grid
     22      var cellsArray = [
     23        [kColHeaderCell, kColHeaderCell, kColHeaderCell],
     24        [kRowHeaderCell, kDataCell,      kDataCell],
     25        [kRowHeaderCell, kDataCell,      kDataCell],
     26      ];
     27 
     28      testTableStruct("table", cellsArray);
     29 
     30      // ////////////////////////////////////////////////////////////////////////
     31      // HTML table based ARIA grid
     32      cellsArray = [
     33        [kColHeaderCell, kColHeaderCell, kColHeaderCell],
     34        [kDataCell,      kDataCell,      kDataCell],
     35        [kDataCell,      kDataCell,      kDataCell],
     36      ];
     37 
     38      testTableStruct("grid", cellsArray);
     39 
     40      // ////////////////////////////////////////////////////////////////////////
     41      // ARIA grid with HTML table elements
     42      cellsArray = [
     43        [kColHeaderCell, kColHeaderCell],
     44        [kDataCell,      kDataCell],
     45      ];
     46 
     47      testTableStruct("grid2", cellsArray);
     48 
     49      // ////////////////////////////////////////////////////////////////////////
     50      // ARIA grid of wrong markup
     51      cellsArray = [ ];
     52      testTableStruct("grid3", cellsArray);
     53 
     54      cellsArray = [ [] ];
     55      testTableStruct("grid4", cellsArray);
     56 
     57      // ////////////////////////////////////////////////////////////////////////
     58      // ARIA table with tr inside a shadow root (bug 1698097).
     59      testTableStruct("tableShadow", [ [ kDataCell ] ]);
     60 
     61      SimpleTest.finish();
     62    }
     63 
     64    SimpleTest.waitForExplicitFinish();
     65    addA11yLoadEvent(doTest);
     66  </script>
     67 </head>
     68 
     69 <body>
     70  <a target="_blank"
     71     title="ARIA grid based on HTML table"
     72     href="https://bugzilla.mozilla.org/show_bug.cgi?id=491683">Mozilla Bug 491683</a>
     73  <a target="_blank"
     74     title="implement IAccessibleTable2"
     75     href="https://bugzilla.mozilla.org/show_bug.cgi?id=512424">Mozilla Bug 512424</a>
     76  <a target="_blank"
     77     title="nsHTMLTableCellAccessible is used in dojo's ARIA grid"
     78     href="https://bugzilla.mozilla.org/show_bug.cgi?id=513848">Mozilla Bug 513848</a>
     79  <a target="_blank"
     80     title="Crash [@ AccIterator::GetNext()]"
     81     href="https://bugzilla.mozilla.org/show_bug.cgi?id=675861">Mozilla Bug 675861</a>
     82 
     83  <p id="display"></p>
     84  <div id="content" style="display: none"></div>
     85  <pre id="test">
     86  </pre>
     87 
     88  <!-- Not usual markup to avoid text accessible between cell accessibles -->
     89  <div id="table" role="grid">
     90    <div role="row"><span
     91      id="table_ch_1" role="columnheader">col_1</span><span
     92      id="table_ch_2" role="columnheader">col_2</span><span
     93      id="table_ch_3" role="columnheader">col_3</span></div>
     94    <div role="row"><span
     95      id="table_rh_1" role="rowheader">row_1</span><span
     96      id="table_dc_1" role="gridcell">cell1</span><span
     97      id="table_dc_2" role="gridcell">cell2</span></div>
     98    <div role="row"><span
     99      id="table_rh_2" role="rowheader">row_2</span><span
    100      id="table_dc_3" role="gridcell">cell3</span><span
    101      id="table_dc_4" role="gridcell">cell4</span></div>
    102  </div>
    103 
    104  <table role="grid" id="grid" border="1" cellpadding="10" cellspacing="0">
    105    <thead>
    106      <tr role="row">
    107        <th role="columnheader">subject</td>
    108        <th role="columnheader">sender</th>
    109        <th role="columnheader">date</th>
    110      </tr>
    111    </thead>
    112    <tbody>
    113      <tr role="row">
    114        <td role="gridcell" tabindex="0">about everything</td>
    115        <td role="gridcell">president</td>
    116        <td role="gridcell">today</td>
    117      </tr>
    118      <tr role="row">
    119        <td role="gridcell">new bugs</td>
    120        <td role="gridcell">mozilla team</td>
    121        <td role="gridcell">today</td>
    122      </tr>
    123    </tbody>
    124  </table>
    125 
    126  <!-- ARIA grid containing presentational HTML:table with HTML:td used as ARIA
    127    grid cells (focusable and not focusable cells) -->
    128  <div role="grid" id="grid2">
    129    <div role="row">
    130      <table role="presentation">
    131        <tr>
    132          <td role="columnheader">header1</td>
    133          <td role="columnheader">header2</td>
    134        </tr>
    135      </table>
    136    </div>
    137    <div role="row">
    138      <table role="presentation">
    139        <tr>
    140          <td role="gridcell">cell1</td>
    141          <td role="gridcell" tabindex="-1">cell2</td>
    142        </tr>
    143      </table>
    144    </div>
    145  </div>
    146 
    147  <!-- Wrong markup ARIA grid -->
    148  <div role="grid" id="grid3"></div>
    149  <div role="grid" id="grid4"><div role="row"></div></div>
    150 
    151  <div id="tableShadow" role="table"></div>
    152  <script>
    153    let host = document.getElementById("tableShadow");
    154    let shadow = host.attachShadow({mode: "open"});
    155    let tr = document.createElement("tr");
    156    shadow.append(tr);
    157    tr.setAttribute("role", "row");
    158    let td = document.createElement("td");
    159    tr.append(td);
    160    td.textContent = "test";
    161  </script>
    162 </body>
    163 </html>