Кнопка Submit не сфокусирована, хотя tabindex правильно установлен

Я определил индекс вкладок для полей ввода в форме. Когда табуляция через поля ввода, кнопка отправки никогда не получает фокус, некоторые другие поля ввода в другой форме на странице получают фокус. У всех есть индексы вкладок выше 3. Как получилось?

<form action="subscription.php" name="subscribe" method="post"  onsubmit="return isValidEmailAndEqual()">
<p id="formlabel">E-mail</p> <input type="text" name="email1" tabindex=1>

<br/>
<p id="formlabel">Repeat e-mail</p> <input type="text" name="email2" tabindex=2> <br/>
<input id="inputsubmit" type="submit" value="Subscribe" tabindex=3>
</form>

CSS

input {
    background-color : #333;
    border: 1px solid #EEE;
    color: #EEE;
    margin-bottom: 6px;
    margin-top: 4px;
    padding: 1px;
    width : 200px;
}

#inputsubmit {
    background-color : #d7e6f1;
    border: 1px solid #EEE;
    color: #0000ff;
    margin-bottom: 6px;
    margin-top: 4px;
    padding: 1px;
    width : 200px;
}

#inputsubmit:hover {
    cursor: pointer; cursor: hand;  
    background-color : #d7e6f1;
    border: 1px solid #0000ff;
    color: #0000ff;
    margin-bottom: 6px;
    margin-top: 4px;
    padding: 1px;
    width : 200px;
}

p#formlabel{
    width: 100;
}

Ответ 1

Это функция Mac, позволяющая вам по умолчанию указывать поля ввода и списки вкладок. Перемещение по всем элементам управления - это расширенный вариант:

http://support.mozilla.com/en-US/kb/Pressing+Tab+key+does+not+select+menus+or+buttons

Firefox на Mac копирует это поведение ОС по умолчанию.

Ответ 2

Это проблема Mac OS X. Ваш Mac может быть настроен так, чтобы не позволять вам вводить элементы нетекстового поля (например, кнопки). Вы можете изменить это, перейдя в системные настройки для клавиатуры. Затем нажмите на вкладку shorcut и посмотрите на нижнюю часть и выберите параметр, чтобы можно было сфокусироваться на всех элементах управления. Теперь вы можете сосредоточиться на кнопках Safari и Firefox в дополнение ко всем кнопкам в Mac OS.

Чтобы быстро изменить настройку на вашем Mac, нажмите CTRL + F7 (или если вы используете клавиатуру Mac, попробуйте удерживать функциональную клавишу и нажимать CTRL + F7).

Ответ 3

Хорошо, посмотрим. Я пробовал код в Firefox (Mac, Windows), Safari (Mac) и IE (Windows). Вот мои выводы:

При использовании

<button name="thename" type="submit">Subscribe</button>

или

<input id=\"inputsubmit\" type=\"submit\" value=\"Subscribe\">

для отправки формы (тот же результат):

  • FF (Win) - при табуляции фокус действительно нажимает кнопку
  • FF (Mac) - при нажатии кнопки фокус не нажимает кнопку.
  • Safari (Mac) - при нажатии кнопки фокус не нажимает кнопку.
  • IE (Win) - при использовании табуляции кнопка, кажется, находится в каком-то фокусе все время, и кнопка будет иметь дополнительный фокус при табуляции на i.
  • Для всех, когда элемент внутри формы имеет фокус, можно просто нажать Enter, чтобы "click" кнопка отправки.

Я предполагаю, что вывод должен быть таким:

  • Различные браузеры ведут себя по-разному. Даже тот же браузер ведет себя по-разному на разных ОС (FF).

  • Поведение формы по умолчанию заключается в том, что нажатие на ввод отправит форму, используя первую кнопку отправки в форме.

  • Я думаю, что это питти, что фокус не будет нажимать кнопку при табуляции, потому что я думаю, что довольно много пользователей ожидают сосредоточиться на элементе, прежде чем попасть в него.

Или что вы скажете...?

Ответ 4

Вам не нужно определять индексы табуляции, вы также можете отказаться от них - если вы не захотите изменить их естественный порядок, когда они будут отсортированы по их созданию. Попробуйте вытащить их полностью и посмотреть, работает ли это по своему вкусу.