«Порядок табуляции» в приложении rails - PullRequest
7 голосов
/ 21 апреля 2009

В приложении rails я хочу, чтобы пользователи могли вводить данные без использования мыши.

Чтобы помочь сделать это, я хочу установить порядок, в котором курсор перемещается к текстовым полям, раскрывающимся спискам и кнопкам.

Есть ли способ сделать это?

Ответы [ 6 ]

8 голосов
/ 08 июня 2011

Джефф Петерсон почти прав.

<%= f.text_field :attribute, :tabindex => 1 %>
3 голосов
/ 02 июля 2013

Если вы используете simple_form, вам нужно сделать это так:

<%= f.input :name, input_html: {:tabindex => 1} %>
3 голосов
/ 02 мая 2011
<%= f.text_field :attribute, :tabindex => 1 %>

, затем 2, 3, 4 и т. Д.

Редактировать: удалено подчеркивание из "tab_index". Так близко.

Кроме того, вы можете создать вспомогательный метод для автоматического увеличения индекса:

def tabindex
  @tabindex ||= 0
  @tabindex += 1
end
1 голос
/ 21 апреля 2009

Я не специалист по рельсам, но я использовал другие веб-фреймворки MVC. Просто предостережение:)

Когда вы выводите элементы формы, вы должны иметь возможность добавлять дополнительные атрибуты для каждого (например, класс, onchange и т. Д.). Вы можете достичь желаемого, установив для каждого значение tabindex, увеличивая его по мере продвижения. Получившийся html будет выглядеть примерно так:

<input type="text" id="myInput" tabindex=1 />
<select id="mySelect" tabIndex=2>
    <option id="myOpt1" value="someValue">Foo!</option>
</select>

Нечто подобное сделает работу.

Также, похоже, этот вопрос уже был опубликован :)

0 голосов
/ 21 апреля 2009

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

В псевдокоде, который сделал бы что-то подобное

all_fields = ["field1","field2"]
current = 0
if catch event("tab pressed"){
 current = (current+1) %all_fields.size
 all_fields[current].focus
}

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

Вы также можете использовать tabindex http://www.w3.org/TR/html401/interact/forms.html, но я никогда не делал этого, поэтому я не уверен, что он будет работать нормально.

Последним решением будет размещение полей в том порядке, в котором вы хотите, чтобы люди их редактировали.

0 голосов
/ 21 апреля 2009

Я не пытался сделать это (но, возможно, я должен). Так или иначе, w3.org имеет следующее: http://www.w3.org/TR/WCAG10-HTML-TECHS/#forms-keyboard-access, которое кратко описывает использование атрибута tabindex. Я полагаю, вам нужно было бы настроить его индивидуально на вашем контроле, что было бы немного утомительно, но не так ужасно.

Я не знаю, сработает ли это, но вы можете рассмотреть возможность использования приращений, скажем, 100, чтобы можно было добавлять дополнения между существующими элементами управления без необходимости каждый раз повторять весь список элементов управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...