Этот атрибут определяет позицию табуляции текущего элемента. Позиция табуляции указывает на относительный порядок, в котором элементы обходятся, когда осуществляется табуляция в одной карте WML. Значение tabindex с большим значением, указывает на элемент, который проходится позже во время табуляции, чем элемент со значением tabindex с меньшим значением.
Каждому элементу (т.е. input и select) в карте присваивается позиция в последовательности табуляции. Дополнительно, устройство вывода может назначить позицию для других элементов. Атрибут tabindex указывает на позицию табуляции данного элемента. Устройство вывода может назначать позицию табуляции для элементов, у которых автор не определил этот атрибут. Позиции табуляции, определенные устройством вывода, должны быть больше в последовательности табуляции, чем позиции табуляции, определенные автором.
Табуляция является ускорителем навигации и факультативным для всех устройств вывода. Авторы не должны полагаться на то, что устройства вывода выполняет табуляцию.
11.6.2 Списки Select
Списки Select являются элементами ввода, которые определяют список вариантов (option) для выбора пользователем. Поддерживается одинарный или множественный выбор.
Элемент select позволяет пользователю осуществлять выбор из списка вариантов (option). Каждый вариант определяется элементом option. Каждый элемент option может иметь одну строку отформатированного текста (которая может переноситься на другую строку или усекаться устройством вывода, если она очень длинная). Элементы Option могут быть организованы в иерархические группы с использованием элемента optgroup.
Атрибуты
multiple=boolean
Этот атрибут указывает на то, что список select должен принимать множественный выбор. Когда не установлен, то список выбора должен принимать один вариант опции.
name=nmtoken
value=vdata
Этот атрибут name указывает имя переменной для установки результата выбора. Переменная устанавливается как строковое значение выбранного элемента option, который определяется атрибутом value. Значение переменной name используется для предварительного выбора вариантов списка select.
Атрибут value указывает значение по умолчанию переменной, названной в атрибуте name. Когда элемент выводится на экран, переменная, названная в атрибуте name, не определяется, и переменной name может быть присвоено значение, установленное в атрибуте value, в зависимости от значений, определенных в iname и ivalue. Если переменная name уже содержит значение, то атрибут value игнорируется. Любое применение значения по умолчанию осуществляется перед тем, как список предварительно выбирается со значением переменной name.
Если этот элемент позволяет выбор множественных вариантов, то результат выбора пользователя составляет список всех выбранных значений, разделенных символом точка с запятой. Переменная name устанавливается с этим результатом. Дополнительно, атрибут value интерпретируется как список, разделенных точкой с запятой предварительно выбранных вариантов.
iname=nmtoken
ivalue=vdata
Атрибут iname указывает имя переменной, которая устанавливается с индексным результатом выбора. Индексный результат является позицией текущего выбранного варианта option в селективном списке. Индекс ноль указывает на то, что не было выбрано ни одного варианта option. Нумерация индексов начинается с одного и увеличивается монотонно.
Атрибут ivalue указывает на выбранный по умолчанию элемент option. Когда элемент выводится на экран, если переменная, названная в атрибуте iname, не устанавливается, то ему присваивается ввод, выбранный по умолчанию. Если переменная уже содержит значение, то атирбут ivalue игнорируется. Если атрибут iname не определен, то значение ivalue применяется каждый раз, когда элемент выводится на экран.
Если элемент позволяет выбор множества вариантов, то индексный результат выбора пользователя является списком индексов всех выбранных вариантов, разделенных символом точка с запятой (например, "1;2"). Переменная iname устанавливается с этим результатом. Дополнительно, атрибут ivalue интерпретируется как список предварительно выбранных вариантов, разделенных точкой с запятой (например, "1 ;4").
title= vdata
Этот атрибут определяет заголовок этого элемента, который может использоваться в презентации этого объекта.
Атрибуты, определенные в другом месте
§
xml:lang (смотрите раздел 8.8)
§
id (смотрите раздел 8.9)
§
class (смотрите раздел 8.9)
§
tabindex (смотрите раздел 11.6.1)
При вводе в карту, содержащей элемент select, устройство ввода должно выбрать начальные варианты элемента option и обновить связанные переменные (определенные атрибутами name или iname) следующим способом. Если карта содержит множественные элементы select, или элементы input вместе с элементами select, то инициализация должна проходит в порядке, котором элементы появляются в карте.
Обратите внимание на то, что значения – это список значений, разделенных точкой с запятой, когда multiple="true", но обрабатываемых как одно значение (даже если они содержат точки с запятой). Дополнительно, индекс варианта по умолчанию является объединенным значением (список), когда multiple="true", и обрабатывается как первый индекс.
Выбор начальных элементов option включает операцию, названную как validate(проверка на правильность) . Она обрабатывает значение и устанавливает, является ли значение корректным индексом option (или индексов, когда multiple="true"). Операция состоит из следующих шагов:
убираются все не целые индексы из значения.
Убираются все индексы, выходящие из диапазона значений, где выход из диапазона определяется как любой индекс со значением больше, чем количество вариантов в элементе select или значением, меньше единицы.
Убираются индексы двойники. Обратите внимание на то, что некорректный индекс будет приводит в результате к пустому значению.
Выбор начальных элементов option состоит из следующих шагов:
Шаг 1 – определяется индекс варианта по умолчанию с помощью iname и ivalue:
ЕСЛИ атрибут iname определен, И он называет переменную, которая установлена, ТО индекс варианта по умолчанию является корректным значением такой переменной.
ЕСЛИ индекс варианта по умолчанию пустой, И атрибут ivalue определен, ТО индекс варианта по умолчанию является корректным значением атрибута.
ЕСЛИ индекс варианта по умолчанию пустой, И атрибут name определен, И атрибут name дает имя переменной, которая установлена, ТО для каждого значения в переменной name, которая присутствует как значение элементов option выбора, индекс первого элемента option, включающего такое значение, добавляется к индексу по умолчанию, если такой индекс не был добавлен предварительно.
ЕСЛИ индекс варианта по умолчанию пустой, И атрибут value определен, ТО для каждого значения в атрибуте value, который представлен как значение элементов option выбора, индекс первого элемента option, содержащего такое значение, добавляется к индексу по умолчанию, если такой индекс не был добавлен предварительно.
ЕСЛИ индекс выбора по умолчанию пустой, И элемент select установлен как множественный выбор, ТО индекс варианта по умолчанию установлен как ноль.
ЕСЛИ индекс варианта по умолчанию пустой, И элемент select установлен как единичный выбор, ТО индекс варианта по умолчанию установлен как один.
Шаг 2 – инициализация переменных
ЕСЛИ атрибут name определен, И select определен как элемент единичного выбора, ТО названная переменная устанавливается со значением атрибута value в элементе option с индексом варианта по умолчанию.
Еще, ЕСЛИ атрибут name определен, и select установлен как элемент со множественным выбором, ТО для каждого индекса больше нуля значение атрибута value для элемента option с индексом добавляется к переменной name.
ЕСЛИ атрибут iname определен, ТО названная переменная установлена с индексом варианта по умолчанию.
Шаг 3 – предварительный выбор варианта(ов), определенного индексом варианта по умолчанию
Отменить выбор всех вариантов
Для каждого индекса, больше чем ноль, выбрать вариант, определенный индексом.
Когда пользователь выбирает или отменяет выбор одного или больше элементов option, переменные name и iname обновляются со значением варианта и индексом. Элемент name отменяется, если все выбранные элементы option содержат пустой атрибут value. Однако, во всех случаях устройство вывода не должно выставлять побочный эффект дисплея, как результат обновления переменных name и iname, за исключением того, когда есть явное обновление задачи (смотрите раздел 9.4.3). Устройство вывода должно обновить переменные name и iname (если определено) для каждого элемента select в элементе card перед вызовом каждой и всех задач в соответствии с шагами 1 и 2, указанными выше.
Списки множественного выбора приводят в результате к величине, которая является списком, разделенных точкой с запятой (например, "dog; cat"). Это не упорядоченный список, и устройство вывода свободно строить список в любом порядке, который удобен. Авторы не должны полагаться на частный порядок значений. Устройство вывода должно обеспечивать, что результат iname не содержит двойных значений индексов. Результат name должен содержать двойные значения в ситуации, когда элементы option множественного выбора имеет одно и то же значение. Результат name не должен содержать пустых значений (например, "cat;; dog" является не корректным).
Атрибут value определяет значение, которое используется, когда устанавливается переменная name. Когда пользователь выбирает этот вариант, результирующее значение, определенное в атрибуте value используется для установки переменной name элемента select.
Атрибут value может содержать ссылки на переменную, которые оцениваются перед тем, как переменная name устанавливается.
title= vdata
Этот атрибут определяет заголовок для данного элемента, который может использоваться при представлении этого объекта.
onpick=HREF
Событие onpick происходит тогда, когда пользователь выбирает или отменяет выбор этого варианта. Список вариантов множественного выбора генерирует событие onpick, когда пользователь выбирает или отменяет выбор этого варианта. Список одинарного выбора генерирует событие onpick, когда пользователь выбирает этот вариант, т.е. не генерируется событие для отмены выбора любого предыдущего выбранного варианта.
Элемент optgroup позволяет автору группировать связанные иерархически элементы option. В пределах иерархии все элементы должны быть элементами option (т.е., будет ошибкой строить иерархию, которая содержит элемент optgroup). Устройство вывода может использовать эту иерархию для облегчения разметки и презентации на широком разнообразии устройств. Устройство вывода может выбрать не строить иерархию, игнорируя элементы optgroup. Однако, во всех случаях устройство вывода должно продолжать обрабатывать все дочерние элементы.
Атрибуты
title= vdata
Этот атрибут определяет заголовок для элемента, который может использоваться при презентации этого объекта.