Zastanawialiście się kiedyś czy ustawianie koloru tekstu dla grafik (elementy img) ma sens? Albo ustawianie koloru tekstu dla linku, który zawiera jedynie grafikę?
Może mieć i to całkiem spory. Wyobraźmy sobie, że dla elementu body mamy ustawione białe tło i kolor niebieski dla linków.
Wyobraźmy sobie, że w sekcji, w której znajduje się opis produktu mamy zawierający jedynie grafikę link kierujący do koszyka. Dla całości mamy zaś ustawione niebieskie tło. Co się stanie w momencie gdy nie wyświetli się grafika? Oczywiście wyświetli nam się jej opis zawarty w atrybucie alt. A jaki kolor będzie miał ten tekst jeśli nie zdefiniujemy koloru dla tego linku? Będzie to kolor domyślny dla nieotwartych linków czyli - niebieski.
Dostaniemy więc niebieski tekst na niebieskim tle, czyli coś czego nie będzie widać.
Wiem może to się wydawać skrajnym przypadkiem, ale zawsze występuje pewne ryzyko, że grafika się nie załaduje. Czy to z powodu problemów po stronie serwera czy słabego połączenia.
Podobnie będzie w przypadku, gdy na ciemnym tle nie wyświetli nam się grafika, a kolor tekstu będzie zbliżony do koloru tła.
Zamiast nadawać kolor tekstu poszczególnym elementom h2 czy p (nie zależnie czy bezpośrednio, czy przez przypisane do nich klasy) lepszym i bardziej dostępnym rozwiązaniem jest przypisanie koloru tekstu bezpośrednio do elementu dla którego ustawiamy kolor tła. Zresztą po to mamy kaskadowość w CSS.
Dzięki temu nie dość, że zmniejszymy ilość kodu CSS to zapewnimy także dostępność w przypadku gdy wystąpi jakiś problem z wyświetleniem grafik.
No i oczywiście dobrze gdy dodatkowo obsłużone są kolory linków zawierających jedynie grafiki i ich pseudoklasy :visited i :hover.