|
112 | 112 |
|
113 | 113 | Это можно изменить HTML-атрибутом `tabindex`. |
114 | 114 |
|
115 | | -Цель этого атрибута - указать порядковый номер элемента, когда клавиша `key:Tab` используется для переключения между элементами. |
| 115 | +Любой элемент поддерживает фокусировку, если имеет `tabindex`. Значение этого атрибута - порядковый номер элемента, когда клавиша `key:Tab` (или что-то аналогичное) используется для переключения между элементами. |
116 | 116 |
|
117 | 117 | То есть: если у нас два элемента, первый имеет `tabindex="1"`, а второй `tabindex="2"`, то находясь в первом элементе и нажав `key:Tab` -- мы переместимся во второй. |
118 | 118 |
|
| 119 | +Порядок перебора таков: сначала идут элементы со значениями `tabindex` от `1` и выше, в порядке `tabindex`, а затем элементы без `tabindex` (например, обычный `<input>`). |
| 120 | + |
| 121 | +При совпадающих `tabindex` элементы перебираются в том порядке, в котором идут в документе. |
| 122 | + |
119 | 123 | Есть два специальных значения: |
120 | 124 |
|
121 | | -- `tabindex="0"` делает элемент последним. |
122 | | -- `tabindex="-1"` значит, что `key:Tab` игнорирует этот элемент. |
| 125 | +- `tabindex="0"` ставит элемент в один ряд с элементами без `tabindex`. То есть, при переключении такие элементы будут после элементов с `tabindex ≥ 1`. |
123 | 126 |
|
124 | | -**Любой элемент поддерживает фокусировку, если имеет `tabindex`.** |
| 127 | + Обычно используется, чтобы включить фокусировку на элементе, но не менять порядок переключения. Чтобы элемент мог участвовать в форме наравне с обычными `<input>`. |
| 128 | +- `tabindex="-1"` позволяет фокусироваться на элементе только программно. Клавиша `key:Tab` проигнорирует такой элемент, но метод `elem.focus()` будет действовать. |
125 | 129 |
|
126 | 130 | Например, список ниже. Кликните первый пункт в списке и нажмите `key:Tab`: |
127 | 131 |
|
|
140 | 144 | </style> |
141 | 145 | ``` |
142 | 146 |
|
143 | | -Порядок такой: `1 - 2 - 0` (ноль всегда последний). Обычно `<li>` не поддерживает фокусировку, но `tabindex` полностью включает её, а также события и стилизацию псевдоклассом `:focus`. |
| 147 | +Порядок такой: `1 - 2 - 0`. Обычно `<li>` не поддерживает фокусировку, но `tabindex` включает её, а также события и стилизацию псевдоклассом `:focus`. |
144 | 148 |
|
145 | | -```smart header="`elem.tabIndex` тоже работает" |
| 149 | +```smart header="Свойство `elem.tabIndex` тоже работает" |
146 | 150 | Мы можем добавить `tabindex` из JavaScript, используя свойство `elem.tabIndex`. Это даст тот же эффект. |
147 | 151 | ``` |
148 | 152 |
|
|
0 commit comments