Element <a>nchor jest po prostu kotwicą do lub z jakiejś treści. Oryginalnie specyfikacja HTML dopuszczalna dla nazwanych kotwic ( <a name="foo">) i połączonych kotwic ( <a href="#foo">).
Nazwany format kotwicy jest rzadziej używany, ponieważ identyfikator fragmentu jest teraz używany do określenia [id]atrybutu (chociaż w celu zapewnienia zgodności wstecznej nadal można określić [name]atrybuty). Elementem bez atrybutu jest nadal ważna .<a>[href]
Jeśli chodzi o semantykę i stylizację, <a>element nie jest linkiem ( :link), chyba że ma [href]atrybut. Efektem ubocznym jest to, że <a>element bez tego elementu [href]domyślnie nie będzie w kolejności tabulacji.
Prawdziwe pytanie brzmi, czy <a>sam element jest odpowiednią reprezentacją a <button>. Na poziomie semantycznym istnieje wyraźna różnica między a linki a button.
Przycisk to coś, co po kliknięciu powoduje wykonanie akcji.
Łącze to przycisk, który powoduje zmianę nawigacji w bieżącym dokumencie. Nawigacja, która ma miejsce, może polegać na poruszaniu się w dokumencie w przypadku identyfikatorów fragmentów ( #foo) lub przechodzeniu do nowego dokumentu w przypadku adresów URL ( /bar).
Ponieważ łącza są specjalnym typem przycisków, często ich działania były zastępowane, aby wykonywać alternatywne funkcje. Dalsze używanie kotwicy jako przycisku jest w porządku z punktu widzenia spójności, chociaż nie jest całkiem dokładne semantycznie.
Jeśli obawiasz się semantyki i dostępności używania <a>elementu (lub <span>, lub <div>) jako przycisku, powinieneś dodać następujące atrybuty:
<a role="button" tabindex="0" ...>...</a>
Rola przycisku informuje użytkownika, że dany element jest traktowany jako przycisk jako nadpisania niezależnie semantyka elementu bazowego może mieli.
Dla <span>i <div>elementy, może chcesz dodać słuchaczy kluczowych JavaScript Spacelub Enteraby wywołać clickzdarzenia. <a href>a <button>elementy robią to domyślnie, ale elementy niebędące przyciskami nie. Czasami bardziej sensowne jest powiązanie clickspustu z innym klawiszem. Na przykład przycisk „Pomoc” w aplikacji internetowej może być powiązany z F1.