W HTML odnośnik w znaczniku <a> wskazuje cel poprzez atrybut href. Gdy chcemy przejść do fragmentu tej samej strony (np. do konkretnego rozdziału/sekcji), stosuje się tzw. identyfikator fragmentu (fragment identifier) w postaci #nazwa_id. Przeglądarka interpretuje część po znaku # jako odwołanie do elementu w dokumencie, który ma atrybut id o tej samej wartości.
Dlatego zapis href = "#r2" jest poprawny, jeżeli rozdział 2 (np. nagłówek <h2> lub sekcja <section>) ma ustawione id="r2". Kliknięcie linku powoduje przewinięcie (lub ustawienie fokusu) do tego miejsca i aktualizację adresu w pasku URL o fragment #r2.
Dlaczego pozostałe propozycje są błędne w typowym scenariuszu linkowania wewnętrznego?
- href = "r2" (bez #) jest traktowane jak adres względny zasobu/plików (np. ścieżka), a nie jak wskazanie fragmentu dokumentu. Może prowadzić do próby otwarcia podstrony lub zasobu o nazwie "r2".
- href = "sekcja2" również wygląda jak adres względny. Dodatkowo nie wskazuje wprost na identyfikator elementu w dokumencie, tylko na potencjalny plik/ścieżkę.
- href = "#sekcja2" byłoby poprawne wyłącznie wtedy, gdy rozdział 2 miałby id="sekcja2". Jeśli identyfikator w kodzie to "r2", to fragment musi być identyczny znak w znak.
Wskazówka egzaminacyjna: w pytaniach o przejście do sekcji/rozdziału na tej samej stronie szukaj pary: href="#..." w menu oraz id="..." w nagłówku/sekcji. Te dwie wartości muszą być takie same, a znak # jest obowiązkowy dla linku do fragmentu.