Element <u> w HTML wyróżnia fragmenty tekstu, które wymagają wizualnego zaznaczenia bez zmiany znaczenia – np. błędy ortograficzne czy nazwy własne w językach CJK. W HTML5 znacznik <u> uzyskał funkcję semantyczną zamiast czysto prezentacyjnego podkreślenia, dzięki czemu jego użycie nie powinno mylić się z linkami.
Historia i ewolucja znacznika <u>
Przed HTML5 – znacznik służył głównie do podkreślenia tekstu (underline), podobnie jak <b> do pogrubienia czy <i> do kursywy, polegając na domyślnych stylach przeglądarek.
HTML5 i później – specyfikacja rozszerzyła znaczenie semantyczne znacznika; ma on oznaczać nietekstowe adnotacje (np. błąd zapisu, wyróżnienie nazw własnych w chińskim), a nie służyć do dekoracyjnego podkreślania treści.
Dzięki temu <u> może wspierać dostępność – czytniki ekranu mogą odczytywać go jako „tekst podkreślony”, nie myląc go z hiperłączem.
Poniżej zebraliśmy najczęstsze i poprawne zastosowania znacznika <u>:
- błędy ortograficzne – wyróżnianie błędnych form w edytorach i podglądach korekt;
- nazwy własne w CJK – wizualne oznaczanie imion, nazwisk i toponimów w językach takich jak chiński czy japoński;
- adnotacje redakcyjne – tymczasowe oznaczenia wymagające uwagi (np. do weryfikacji) bez zmiany akcentu semantycznego.
Podstawowa składnia i kontekst użycia
Tag <u> należy do treści frazowej (phrasing content) i wymaga znacznika otwierającego i zamykającego: <u>Tekst</u>.
Tabela kontekstu użycia
Poniższa tabela podsumowuje, gdzie i jak można stosować <u> w dokumencie HTML:
| Aspekt | Szczegóły |
|---|---|
| Elementy nadrzędne | Dowolne elementy akceptujące treść frazową, np. <p>, <span>, <div>. |
| Elementy potomne | Inna treść frazowa, np. <em>, <strong>, <a>, tekst zwykły. |
| Znaczniki | Obowiązkowe: <u> i </u>. |
| Interfejs DOM | HTMLElement. |
Nie używaj <u> samodzielnie w miejscach wymagających treści przepływowej (flow content), np. bezpośrednio w <body> – umieszczaj go wewnątrz <p> lub podobnych elementów.
Przykłady praktyczne użycia <u>
1. Oznaczanie błędów ortograficznych
Idealny do podkreślania błędów w edytorach i podglądach korekt:
<p>W tym zdaniu jest błąd: Słowo <u>krztałt</u> powinno być "kształt".</p>
Aby wzmocnić sygnał błędu, zastosuj faliste czerwone podkreślenie w CSS:
u {
text-decoration: underline wavy red;
}
Takie użycie jasno komunikuje błąd semantycznie, bez konieczności stosowania neutralnego <span>.
2. Nazwy własne w języku chińskim
W tekstach chińskich nazwy własne można wizualnie wyróżniać, gdy brak adnotacji ruby:
<p>Znany pisarz <u>李白</u> (Li Bai) napisał wiersz o księżycu.</p>
3. Połączenie z innymi znacznikami semantycznymi
Nie myl ról: <strong> nadaje ważność, <em> – akcent, a <u> – wizualne wyróżnienie bez zmiany znaczenia:
<p>Użyliśmy mikrofonu <strong>Shure SM7B</strong>, ale napisałem <u>mikrofon</u> zamiast "mikrofonu".</p>
<p>Spojrzał i poczuł <em>deja vu</em>, a dodatkowo <u>deja vu</u> wyróżniono stylistycznie.</p>
4. W listach i tabelach
Możesz oznaczyć błąd w nazwie produktu na liście:
<ul>
<li>Produkt: <u>aple</u> (błąd w "apple")</li>
<li>Cena: 100 zł</li>
</ul>
Stylizacja <u> za pomocą CSS – unikaj mylenia z linkami
Domyślne, ciągłe podkreślenie może wyglądać jak link, dlatego warto je nadpisać w CSS dla lepszej czytelności i dostępności.
Podstawowe style
u {
text-decoration: underline wavy #ff0000; /* faliste czerwone */
background-color: #fff3cd; /* delikatne żółte tło */
}
Responsywny przykład z efektem hover
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Przykład <u></title>
<style>
.error {
text-decoration: underline wavy red;
background: #ffebee;
padding: 2px 4px;
border-radius: 3px;
transition: all 0.3s;
}
.error:hover {
background: #ffcdd2;
text-decoration: underline double red;
}
.chinese-name {
text-decoration: underline;
color: #2196f3;
font-weight: bold;
}
</style>
</head>
<body>
<h2>Przykłady semantycznego <u></h2>
<p>Błąd: <u class="error">kolorowy</u> zamiast "kolorowy".</p>
<p>Chińskie imię: <u class="chinese-name">李白</u>.</p>
</body>
</html>
Efekt hover wzmacnia informację zwrotną, co poprawia UX, zwłaszcza w interfejsach edytorów treści.
Błędy do uniknięcia i dobre praktyki
Stosując <u>, zwróć uwagę na najczęstsze pułapki i rekomendacje:
- nie używaj do linków –
<u>bywa mylony z<a>; jeśli link nie ma podkreślenia, nadpisz styl przeztext-decoration: nonena odsyłaczach; - nie zastępuj
<ins>–<ins>służy do oznaczania wstawek w tekście (różnicowanie wersji), a<u>– do adnotacji stylistycznej; - dostępność – testuj z czytnikami NVDA/JAWS; upewnij się, że kontrast i sposób wyróżnienia są wystarczająco czytelne;
- alternatywy – jeśli chodzi wyłącznie o wygląd, możesz użyć
<span style="text-decoration: underline">, pamiętaj jednak, że tracisz semantykę; - walidacja – weryfikuj dokument na validator.w3.org;
<u>jest zgodny z HTML5.
Zaawansowane zastosowania z JavaScript
Możesz dynamicznie oznaczać błędnie zapisane słowa w treści, podkreślając je semantycznie:
// Symulacja sprawdzania pisowni
window.onload = () => {
document.querySelectorAll('p').forEach(p => {
const words = p.textContent.split(' ');
p.innerHTML = words.map(word => {
if (word.includes('krztałt')) {
return '<u>' + word + '</u>';
}
return word;
}).join(' ');
});
};
Porównanie z pokrewnymi znacznikami
Poniższa tabela porównuje semantykę i zastosowania zbliżonych elementów:
| Znacznik | Semantyka | Domyślny styl | Kiedy używać? |
|---|---|---|---|
<u> |
Wizualne wyróżnienie adnotacyjne (np. błąd, nazwa własna w CJK) | Podkreślenie | Błędy ortograficzne, nazwy własne w CJK |
<b> |
Wizualne pogrubienie bez zmiany ważności | Pogrubienie | Hasła i słowa kluczowe, gdy nie chcesz nadawać im wagi semantycznej |
<i> |
Wyróżnienie idiomów, terminów obcych, tytułów | Kursywa | Terminy obce (np. “deja vu”), myśli wewnętrzne, taksony |
<strong> |
Semantycznie ważny, akcentowany tekst | Pogrubienie | Ostrzeżenia, kluczowe informacje, wyniki |
<em> |
Emfaza (nacisk) w wypowiedzi | Kursywa | Zmiana akcentu/intonacji w zdaniu |