Formularze#

Nawigacja po formularzu#

Przemieszczanie się po kontrolkach formularza zazwyczaj wykonywane jest za pomocą myszki. Dodatkowo, przy domyślnych ustawieniach można w tym celu wykorzystać klawisz tabulatora (Tab), który powoduje przejście do kolejnych pól. Powracanie odbywa się za pomocą kombinacji Shift+Tab. Taki sposób wypełniania formularzy znacznie przyspiesza proces, ponieważ nie trzeba się odrywać od klawiatury, aby przenieść dłoń na myszkę.

Wykorzystując specyficzne atrybuty możemy zmienić kolejność poruszania się po polach formularza oraz przywołać konkretne pole za pomocą unikatowego skrótu z klawiatury.

Tabulator#

Normalnie porządek aktywacji kolejnych pól formularza z użyciem tabulatora jest zgodny z porządkiem umieszczenia kontrolek formularza w kodzie źródłowym strony. Zwykle jest to zupełnie naturalna kolejność. Czasami jednak istnieje konieczność jej zmiany. Przykładem mogą być formularze budowane w oparciu o tabele, gdzie pola formularza umieszcza się w kilku kolumnach i wierszach. W takim przypadku domyślna kolejność aktywacji kontrolek będzie następowała wierszami (poziomo), zgodnie z kolejnością umieszczania komórek tabeli w kodzie źródłowym. Za pomocą atrybutu tabindex="" można z góry określić kolejność aktywacji każdego pola:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<input type="text" name="pole" tabindex="wartość">

gdzie "wartość" to liczba z przedziału od 0 do 32767.

Ustalanie ostatecznej kolejności rządzi się następującymi zasadami:

  1. Elementy z atrybutem tabindex="0" (zero) zachowują się identycznie, jakby w ogóle nie miały przypisanego tego atrybutu.
  2. Elementy bez atrybutu tabindex="..." są aktywowane zawsze po tych, które posiadają niezerową wartość tego atrybutu - w kolejności występowania w kodzie źródłowym dokumentu.
  3. Elementy z taką samą wartością tabindex="..." są aktywowane w kolejności występowania w kodzie źródłowym.
  4. Możliwe jest opuszczanie wybranych liczb w numeracji tabindex="...". Nie ma również wymogu rozpoczynania numeracji od 0 ani od 1.
  5. Elementy zablokowane atrybutem disabled="disabled" nie są uwzględniane w porządku aktywacji, ponieważ w ogóle nie można ich wybrać.
  6. Elementy tylko do odczytu (readonly="readonly") są normalnie aktywowane, ale oczywiście nie można do nich nic wpisać.

Atrybut tabindex można zastosować dla znaczników: A, AREA, BUTTON, TEXTAREA, SELECT, INPUT oraz OBJECT.

Przykład formularza opartego na tabeli, gdzie elementy są aktywowane wierszami (domyślne):

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<form action="">
	<table border="1">
		<tr>
			<td><input type="text" name="pole1" /></td>
			<td><input type="text" name="pole4" /></td>
			<td><input type="text" name="pole7" /></td>
		</tr>
		<tr>
			<td><input type="text" name="pole2" /></td>
			<td><input type="text" name="pole5" /></td>
			<td><input type="text" name="pole8" /></td>
		</tr>
		<tr>
			<td><input type="text" name="pole3" /></td>
			<td><input type="text" name="pole6" /></td>
			<td><input type="text" name="pole9" /></td>
		</tr>
	</table>
</form>

Efekt (wprowadź kursor w jedno z pól i nawiguj za pomocą TAB lub Shift+Tab):

Ten sam przykład, jednak tym razem elementy są aktywowane kolumnami:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<form action="">
	<table border="1">
		<tr>
			<td><input type="text" name="pole1" tabindex="1" /></td>
			<td><input type="text" name="pole4" tabindex="4" /></td>
			<td><input type="text" name="pole7" tabindex="7" /></td>
		</tr>
		<tr>
			<td><input type="text" name="pole2" tabindex="2" /></td>
			<td><input type="text" name="pole5" tabindex="5" /></td>
			<td><input type="text" name="pole8" tabindex="8" /></td>
		</tr>
		<tr>
			<td><input type="text" name="pole3" tabindex="3" /></td>
			<td><input type="text" name="pole6" tabindex="6" /></td>
			<td><input type="text" name="pole9" tabindex="9" /></td>
		</tr>
	</table>
</form>

Efekt (wprowadź kursor w jedno z pól i nawiguj za pomocą TAB lub Shift+Tab):

Klawisz skrótu#

Kolejną możliwością zwiększającą nawigowanie po kontrolkach formularza jest opcja przypisania klawisza skrótu do danego pola. W tym celu posługujemy się atrybutem accesskey="":

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<input type="text" name="pole" accesskey="wartość">

gdzie "wartość" to klawisz, który wywoła daną kontrolkę w kombinacji z innymi przyciskami sterującymi. Przy doborze najlepiej kierować się następującymi wytycznymi:

Przyciski sterujące są zależne od systemu operacyjnego oraz stosowanej przeglądarki. Pod systemem z rodziny Windows najczęściej jest to kombinacja:

Atrybut accesskey można zastosować dla znaczników: A, AREA, BUTTON, LABEL, LEGEND, TEXTAREA oraz INPUT.

Wywołanie skrótu powoduje przeniesienie zogniskowania do danego pola. Jeżeli będzie to pole tekstowe, pojawi się w nim kursor tekstowy, natomiast dla pola wyboru (oraz opcji) spowoduje to jego zaznaczenie/odznaczenie. W przypadku odnośnika, przeglądarka przejdzie pod wskazany dokument. O dostępnych klawiszach skrótu informuje się zwykle poprzez podkreślenie litery w opisie pola, która stanowi skrót. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<form action="" method="post">
	<fieldset>
		<legend>Wypełnij ankietę</legend>
		Wpisz swoje imię i nazwisko [<span style="text-decoration: underline;">1</span>]
		<input name="imie" size="40" type="text" accesskey="1" />
		<p>Kobieta [<span style="text-decoration: underline;">2</span>]
			<input type="radio" name="plec" value="kobieta" accesskey="2" />
			Mężczyzna [<span style="text-decoration: underline;">3</span>]
			<input type="radio" name="plec" value="mezczyzna" accesskey="3" />
		</p>
		<p>Który znasz język?</p>
			<input type="checkbox" name="jezyk" value="angielski" accesskey="n" />A<span style="text-decoration: underline;">n</span>gielski<br />
			<input type="checkbox" name="jezyk" value="niemiecki" accesskey="e" />Ni<span style="text-decoration: underline;">e</span>miecki
		<p><a href="../../index.html" accesskey="g">Strona <span style="text-decoration: underline;">g</span>łówna</a></p>
	</fieldset>
</form>

Efekt:

Wypełnij ankietęWpisz swoje imię i nazwisko [1]

Kobieta [2] Mężczyzna [3]

Który znasz język?

Angielski
Niemiecki

Strona główna

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Formularze (H1) Nawigacja po formularzu (H2) Tabulator (H3) Klawisz skrótu (H3)