HTML 5 快速導覽 - 元素的全域屬性 tabindex

元素 (element) 的全域屬性 (attribute) tabindex ,設定用 tab 鍵取得元素焦點的順序。



有四種設定或回傳可能
  • 錯誤
  • 小於 0 的數字
  • 等於 0 的數字
  • 大於 0 的數字


小於 0 的數字表示不會出現在 tab 鍵取得元素焦點的順序之中,等於 0 或大於 0 的數字表示會出現,舉例如下
<!DOCTYPE html>  
<html>  
  <head>  
     <title>HTML 5 DEMO</title> 
     <style>
       header, nav, section, article, footer {
         display: block;
       }
       header, nav, section, article, footer {
         color: white;
       }
       header, footer {
         text-align: center;
         width: 100%;
       }
       header {
         background-color: red;
         font-size: 36px;
         font-weight: bold;
       }
       nav {
         position: fixed;
         top: 40px;
         right: 25px;
         background-color: blue;
         width: 100px;
       }
       section {
         width: 86%;
         background-color: gray;
         padding: 20px;
         margin: 20px;
       }
       footer {
         background-color: green;
         font-size: 10px;
       }
     </style> 
     <script>
       function run() {
         var d1 = document.getElementById("demo1");
         var d2 = document.getElementById("demo2");
         var d3 = document.getElementById("demo3");
         var d4 = document.getElementById("demo4");
         var d5 = document.getElementById("demo5");
         var d6 = document.getElementById("demo6");
         d1.tabIndex = -1;
         d2.tabIndex = 1;
         d3.tabIndex = -1;
         d2.tabIndex = 0;
         d3.tabIndex = 2;
         d3.tabIndex = 0;
       }
     </script>
  </head>  
  <body onload="run();">  
    <header>  
       header  
    </header>  
    <nav>  
      <ul>
        <li>nav 1</li>
        <li>nav 2</li>
      </ul>  
    </nav>
    <section>  
      <article>
        <div><input type="text" id="demo1"></div>
        <div><input type="text" id="demo2"></div>
        <div><input type="text" id="demo3"></div>
        <div><input type="text" id="demo4"></div>
        <div><input type="text" id="demo5"></div>
        <div><input type="text" id="demo6"></div>
      </article>
    </section>      
    <footer>  
      <p>
        footer © 2011 
      </p>       
    </footer>  
  </body>  
</html>  

<!-- 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:tabindextest.html
     功能:示範 HTML 5 標記語言 
     作者:張凱慶
     時間:西元 2011 年 12 月 -->


我們利用 JavaScript 設定六個 <input> 元素物件的 tabIndex 屬性,其會對應到元素的 tabindex
function run() {
  var d1 = document.getElementById("demo1");
  var d2 = document.getElementById("demo2");
  var d3 = document.getElementById("demo3");
  var d4 = document.getElementById("demo4");
  var d5 = document.getElementById("demo5");
  var d6 = document.getElementById("demo6");
  d1.tabIndex = -1;
  d2.tabIndex = 1;
  d3.tabIndex = -1;
  d2.tabIndex = 0;
  d3.tabIndex = 2;
  d3.tabIndex = 0;
}


利用 Firefox 開啟後,利用 tab 鍵取得元素焦點,會發現無法取得第一個 <input>



中英文術語對照
元素element
屬性attribute


您可以繼續參考
基本概念


相關目錄
HTML 5 快速導覽
HTML, CSS 教材
首頁


參考資料
http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#elements
http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#attr-tabindex
http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#elements
http://www.w3.org/TR/2011/WD-html5-20110525/editing.html#attr-tabindex

沒有留言: