Automaticky tabindex u vykreslení formulářů
- Martin Mates
- Člen | 179
Udělal jsem už asi tak 200 tisíc formulářů v nette a pokaždé jsem
musel u definice všech inputů psát
->getControlPrototype()->tabindex('1');
apod.
Je to vopruz hlavně ve chvíli, kdy třeba nad validačními pravidly
přibude addCondition
nebo addConditionOn
, tak
přestane fungovat řetězení a getControlPrototype už za to nejde
„zaháknout“. Musím to pak definovat
extra $form['jmeno']->getControlPrototype()->tabindex('1');
Peklo nastane taky ve chvíli, kdy mi přibude nějaký input uprostřed. Musím pak všechny tabindex přepsat.
Podle mě by to měl renderer dělat automaticky. Přidal bych třeba funkci setTabindexStart, který by určoval od jakého čísla to pojede pro případ, že je formulářů na stránce víc. Jinak by to jelo od 1.
Co vy na to?
Editoval Martin Mates (31. 8. 2010 16:18)
- knyttl
- Člen | 196
To asi nebude tak jednoduché, kdyby to bylo úplně automatické, spolu s makry na vykreslování formulářů (https://forum.nette.org/…ni-formularu) by to asi dělalo neplechu. Nebo ne?
Editoval knyttr (31. 8. 2010 16:24)
- David Grudl
- Nette Core | 8218
Martin Mates napsal(a):
Udělal jsem už asi tak 200 tisíc formulářů v nette a pokaždé jsem musel u definice všech inputů psát
->getControlPrototype()->tabindex('1');
apod.
A proč?
- jtousek
- Člen | 951
Taky mi připadá jako zbytečnost tabindex řešit – když ho nepoužiješ vůbec, přepínání inputů normálně funguje.
@Martin Mates:
Pokud jde o tvůj problém s přidáváním inputů doprostřed tak na to
existuje naprosto triviální fix:
<?php
$i = 0;
$form->addText(...)->getControlPrototype()->tabindex(++$i);
$form->addSelect(...)->getControlPrototype()->tabindex(++$i);
$form->addCheckbox(...)->getControlPrototype()->tabindex(++$i);
//... preinkrementace funguje víc než spolehlivě :)
?>
Editoval jtousek (31. 8. 2010 23:16)
- iguana007
- Člen | 970
No tabindex byl zaveden především z důvodu absence myši u některých
počítačů a taky kvůli lepší přístupnosti stránek pro handicapované
uživatele, více zde:
http://webdesign.about.com/…aa071105.htm
- redhead
- Člen | 1313
Podle mě je to hlavně proto, aby si programátor mohl upravit defaultní chování tabu, který jde po prvcích tak jak jsou ve zdrojáku odshora dolů – někdy jsou případy že focus by měl skočit (logicky, vizuálně) někam jinam, než kam skáče. Jinak je použití tabindexu docela k ničemu.
- Martin Mates
- Člen | 179
Hmm tak to vypadá na další mýtus, ze školy. Tabindex vždycky a všude jinak zle. Takže jsem to dělal už více méně všude a považoval jsem to za good practice. Asi se na to vyprdnu to vypadá teda :-) Díky!