Wskazówki i skróty do debugowania DevTools (Chrome, Firefox, Edge)

Opublikowany: 2022-03-10
Szybkie podsumowanie ↬ DevTools jest bardzo zaawansowane i pomocne, ale może też być bardzo onieśmielające i przytłaczające. Naprawmy to. W tym artykule Witalij omawia przydatne funkcje i skróty do debugowania w przeglądarkach Chrome, Firefox, Edge i Safari.

Ze wszystkich narzędzi dostępnych obecnie na wyciągnięcie ręki, DevTools jest prawdopodobnie jednym z najbardziej zaawansowanych. Z biegiem lat stał się narzędziem do debugowania, profilowania, audytu, a nawet tworzenia prototypów — wszystko to działa w tym samym interfejsie i jest zawsze dostępne pod skrótem klawiaturowym. Mimo to DevTools ma wiele niejasnych klejnotów i nieodkrytych skarbów, żyjących na odległych obrzeżach ukrytych zakładek i eksperymentalnych ustawień. Naprawmy to.

W tym artykule przyjrzyjmy się niektórym przydatnym i niejasnym funkcjom DevTools . Przyjrzymy się wszystkim nowoczesnym przeglądarkom (Chrome, Firefox, Edge, Safari) i przyjrzymy się przydatnym narzędziom, które udostępniają nam, twórcom stron internetowych. Skoncentrujemy się na tych, których często używamy w SmashingMag, oraz na kilku małych technikach i strategiach, które pomagają nam naprawiać nieznośne błędy i pisać lepszy kod.

Tworzenie profili przeglądarki

Jeśli chodzi o profilowanie witryny pod kątem wydajności lub śledzenie konkretnego problemu z dostępnością, od jakiegoś czasu tworzymy osobne profile przeglądarki dla każdego zadania. Zwykle pracujemy z co najmniej 5 profilami użytkowników, każdy z własnymi rozszerzeniami, zakładkami, bookmarkletami i funkcjami włączonymi lub wyłączonymi. Przyjrzyjmy się im bliżej.

Dedykowane profile przeglądarek do testowania ułatwień dostępu, debugowania, audytów wydajności i sprawdzania obsługi zadowolonych i niezadowolonych klientów.
Dedykowane profile przeglądarek do testowania ułatwień dostępu, debugowania, audytów wydajności i sprawdzania obsługi zadowolonych i niezadowolonych klientów. (duży podgląd)
  • Profil dostępności
    Przejrzysty profil przeglądarki, który zawiera różne narzędzia do sprawdzania dostępności, np. Accessibility Insights, ax i a11y.css, a także kilka innych linters dostępności i symulator widzenia kolorów.

  • Profil debugowania
    Profil z włączonymi kilkoma eksperymentalnymi ustawieniami profilowania, a także opcją automatycznego otwierania DevTools dla każdego nowego okna, wraz z niestandardową diagnostyką CSS do szybkiego audytu i profilowania.

  • Profil wydajności
    Czysty profil bez rozszerzeń, z kilkoma specjalnymi zakładkami do audytu za pomocą Lighthouse, RequestMap, CSS diagnostyki wydajności i kilkoma linkami związanymi z wydajnością, o których należy pamiętać (np. Priorytet zasobów podczas ładowania). Zawsze działa dobrze z dławieniem 4 × procesora i dławieniem sieci (Slow 3G).

  • Zadowolony klient
    Na podstawie danych, które posiadamy z naszych analiz, jest to profil wystarczająco zbliżony do tego, który będzie miał wielu naszych czytelników (cudownych ludzi takich jak Ty). Będzie zawierał kilka popularnych rozszerzeń, popularne rozszerzenia do tworzenia stron internetowych, blokowanie reklam, zarządzanie kartami, Dokumenty Google offline, LastPass, VPN, Browserstack, Grammarly itp. Brak dławienia w użyciu.

  • Niezadowolony klient
    Profil czytnika na wolnym, dławionym połączeniu (wolne 3G), małej ilości pamięci, słabym procesorze, z włączonymi 10 najpopularniejszymi rozszerzeniami przeglądarki. Zwykle używamy tego profilu do testowania naszych najcięższych stron, aby doświadczyć najgorszych możliwych doświadczeń klientów.

W zależności od zadania możemy przeskoczyć do jednego z dedykowanych profili. Rzeczywista wygoda wynika z prostego układu, w którym każdy z profili ma określone rozszerzenia , bookmarklety i ustawienia przeglądarki, które są gotowe do użycia. W razie potrzeby możemy przejść od razu do debugowania wydajności lub audytu dostępności bez kłopotów z wyszukiwaniem odpowiednich rozszerzeń.

Prawdopodobnie dokładamy wszelkich starań, aby każdy profil był czysty i uporządkowany — dotyczy to rozszerzeń przeglądarki, a także zakładek przeglądarki, plików cookie i pamięci podręcznej.

Więcej po skoku! Kontynuuj czytanie poniżej ↓

Globalne skróty klawiaturowe

Trzeba przyznać, że przy ogromnej liczbie funkcji dostępnych w DevTools nie dziwi fakt, że niektóre z nich są dość trudne do znalezienia między zakładkami, panelami, ikonami kół zębatych i kropkami. Nie ma jednak potrzeby zapamiętywania miejsca ich umieszczenia. Zamiast tego warto pamiętać tylko o kilku przydatnych globalnych skrótach klawiaturowych — pomogą one szybciej przeskoczyć do określonych funkcji.

  • Otwieranie menu poleceń (Chrome, Edge)
    Będąc prawdopodobnie jednym z najbardziej znanych, to polecenie ma w rzeczywistości dwie funkcje. Cmd/Ctrl + Shift + P otwiera szybkie autouzupełnianie wyszukiwania paneli, szuflad i wszystkich funkcji w DevTools. Cmd/Ctrl + P otwiera szufladę ze wszystkimi dostępnymi plikami używanymi na bieżącej stronie. Jeśli chcesz szybko uzyskać dostęp do dowolnej funkcji DevTools, menu poleceń to szybki sposób, aby się tam dostać — do ogólnych szuflad, ukrytych menu lub określonych funkcji.

  • Otwieranie ustawień DevTools (wszystkie nowoczesne przeglądarki)
    Zwykle w panelu „Ustawienia” ukrytych jest wiele niejasnych narzędzi i funkcji — od emulowanych urządzeń po profile ograniczania przepustowości sieci i eksperymenty. W Chrome możesz kliknąć ikonę koła zębatego w prawym górnym rogu lub użyć Shift + ? . W przeglądarce Firefox możesz przejść do Ustawień za pomocą F1 .

  • Przełącz tryb inspekcji elementów (wszystkie nowoczesne przeglądarki)
    Zamiast klikać ikonę inspekcji, a następnie koncentrować się na elemencie, który chcesz debugować, możesz przełączyć tryb inspekcji elementu za pomocą Cmd/Ctrl + Shift + C .

  • Przełącz tryb HTML (wszystkie nowoczesne przeglądarki) Podczas sprawdzania elementu możesz chcieć zmienić jego atrybuty, np. klasy lub stany. Zamiast klikać element prawym przyciskiem myszy i dodawać wartości pojedynczo, możesz przełączać tryb HTML na aktualnie wybranym elemencie za pomocą Fn + F2 (lub po prostu F2 w systemie Windows).

  • Przełącz tryb urządzenia (wszystkie nowoczesne przeglądarki) Aby przejść do trybu paska narzędzi urządzenia, np. aby podejrzeć jak makieta wygląda na wąskich ekranach lub uruchomić debugger zapytań o media, możesz użyć Cmd/Ctrl + Shift + M w Chrome, i Cmd/Ctrl + Opt/Alt + M w przeglądarce Firefox.

Istnieje również wiele innych przydatnych skrótów klawiaturowych, np. do wstrzymywania i wznawiania wykonywania skryptu oraz do pasującego nawiasu (w przypadku długich zapytań o media i funkcji JS) w edytorze źródłowym.

Pełny przegląd wszystkich skrótów klawiaturowych można znaleźć w skrótach klawiaturowych Chrome DevTools i Firefox DevTools — najczęściej są one dość spójne we współczesnych przeglądarkach.

Włącz ustawienia eksperymentalne

DevTools jest dostarczany z zestawem eksperymentalnych ustawień, które nie są zalecane dla szerokiego grona odbiorców, ale rzeczywiście mogą być bardzo przydatne do debugowania. Słowo ostrzeżenia: czasami te ustawienia mogą zawiesić Chrome lub sprawić, że będzie on dość powolny (dlatego są przede wszystkim eksperymentalne).

Jednak mając osobne profile , możesz bezpiecznie włączyć niektóre z tych ustawień dla każdego profilu, a następnie wyłączyć je w razie potrzeby. Tak więc, podczas gdy używamy naszych zwykłych profili bez włączonych eksperymentów do zwykłego przeglądania, w trybie debugowania zawsze najpierw wybieramy dedykowany profil, aby usunąć te błędy trochę szybciej.

Dla porównania zrzut ekranu eksperymentalnych ustawień w Chrome.
Ustawienia eksperymentalne z włączonymi kilkoma przydatnymi ustawieniami, np. Przegląd CSS, Siatka CSS, Flexbox i ustawienia osi czasu. (duży podgląd)

Po otwarciu DevTools w Chrome przejdź do „Ustawienia” ( Shift + ? z otwartym DevTools) i znajdź „Eksperymenty” na pasku bocznym. Oczywiście w każdym DevTools dostępnych jest wiele eksperymentalnych ustawień, ale te wymienione poniżej są tylko tymi, które są dla nas bardzo pomocne w naszej pracy.

We wszystkich wymienionych tam opcjach warto włączyć opcję „Automatycznie ładny wydruk w panelu źródłowym” , która domyślnie upiększa skompresowane style i skrypty podczas przeglądania źródła. Możesz także włączyć debugger CSS Grid i debugowanie Flexbox , aby poradzić sobie z problemami z układem. Istnieje również różnica źródeł i przeglądarka kolejności źródeł, które mogą się przydać.

W przypadku audytów wydajności możesz zaznaczyć „Oś czasu: inicjatory zdarzeń” i „Oś czasu: śledzenie unieważnień”, które będą wyświetlane w panelu Wydajność, podświetlając skrypty, które spowodowały kosztowne operacje, takie jak Długie zadania i Ponowne obliczenia stylu. Dodatkowo w Edge można włączyć warstwy kompozytowe w widoku 3D.

W przypadku danego profilu możesz uzyskać dostęp do większej liczby ukrytych funkcji, przechodząc do chrome://flags/ w wybranym profilu przeglądarki. na przykład w tym miejscu możesz włączyć najnowsze i eksperymentalne funkcje JavaScript , eksperymentalne funkcje platformy internetowej lub włączyć wskazówki dotyczące ładowania zasobów, aby wyświetlić podgląd przy wolnych połączeniach sieciowych.

W przeglądarce Firefox przejdź do Ustawień za pomocą F1 . W dolnej części doku możesz poprosić przeglądarkę o pokazanie stylów przeglądarki, włączenie/wyłączenie autouzupełniania CSS, zmianę preferencji edytora, przełączanie migania farby, dostosowywanie zachowania zrzutów ekranu i włączanie map źródłowych (domyślnie nie są włączone). W Safari możesz znaleźć Ustawienia eksperymentalne w „Rozwijaj → Ustawienia eksperymentalne”.

Przełączanie między stanami stacji dokującej (Chrome, Edge, Firefox)

Trzeba przyznać, że widok panelu w DevTools nie jest szczególnie dużą rewelacją. Na karcie „Style” doku style pojawiają się od góry do dołu, uporządkowane według ich specyfiki CSS. Jednak jedną małą rzeczą, której bardzo nie dostrzegaliśmy od lat, jest mały przełącznik :hov umieszczony tuż nad stylami.

Pozwala wymusić stan elementu ( :active , :focus , :focus-within , :hover , :visited i :focus-visible , a ostatnio :target ) na konkretnym elemencie interaktywnym — np. aby wymusić :focus i :active stany na przyciskach kontroli dostępności.

W przeglądarce Firefox możesz zmienić pseudoklasę dla elementu DOM podczas jego sprawdzania — funkcja jest dostępna po kliknięciu prawym przyciskiem myszy węzła DOM.

Jedną rzeczą, która zawsze przeszkadza, jest pozycja doku , która czasami działa lepiej po prawej stronie, a czasami na dole — w zależności od tego, gdzie twój błąd zaatakował twoje drzewo DOM.

Aby szybko przełączać się między stanami dokowania , możesz użyć Cmd/Ctrl + Shift + D . Jednym haczykiem, o którym należy pamiętać, jest to, że skrót oddokuje DevTools do osobnego okna tylko wtedy, gdy DevTools był w domyślnej pozycji (zadokowany po prawej stronie). W przeciwnym razie skrót po prostu przełączy się między domyślną pozycją a tą, na którą go zmieniłeś.

Widok z trzema szybami (Firefox)

Chociaż możemy być przyzwyczajeni do widoku z dwoma panelami, Firefox domyślnie zapewnia pomocny widok z trzema panelami — wygląda on nieco inaczej w różnych sekcjach. W widoku Inspektora, obok HTML i stylów, możesz umieścić debuger układu, pokazywać style komputerowe lub śledzić zmiany CSS — bardzo przydatny jest szybki dostęp do wszystkich tych informacji bez konieczności przełączania się między kartami.

Widok z trzema szybami na stronie internetowej Smashing Magazine
Widok z trzema panelami w przeglądarce Firefox z objaśnieniem funkcji układu w prawym dolnym rogu. (duży podgląd)

Za każdym razem, gdy edytujesz style w Firefoksie, DevTools wyróżnia zapytania o media używane na stronie , za pomocą szybkich przeskoków do sekcji CSS, w których zdefiniowano zachowanie punktu przerwania. Wszystko to jest wyświetlane tuż obok kodu źródłowego, więc nie trzeba szukać konkretnego punktu przerwania. (Nie wspominając o stylach ładnie sformatowanych domyślnie — to przydatne!).

Podobny widok jest również dostępny w Chrome i Edge, ale jest dostępny tylko w panelu „Elementy” (ikona paska bocznego w prawym górnym rogu) i jak dotąd pokazuje tylko przeliczone style (dlatego nazywa się to „Stylami obliczanymi”). Pasek boczny").

Filtrowanie stylów według właściwości (Firefox)

Ogólnie rzecz biorąc, Firefox DevTools są mocno niedoceniane. Inną godną uwagi funkcją, którą zapewnia Firefox, jest opcja filtrowania wszystkich stylów według określonej właściwości (oznaczonej ikoną filtra). Na przykład, jeśli zauważysz, że niektóre style są nadpisywane przez inne, rozproszone gdzieś w arkuszu stylów, możesz ukryć wszystkie definicje, które nie wpływają na tę konkretną właściwość za pomocą szybkiego filtru i zobaczyć, gdzie dokładnie mają miejsce nadpisania.

Filtrowanie stylów według właściwości w Firefoksie.
W przeglądarce Firefox, jeśli niektóre style zostaną nadpisane, możesz odfiltrować cały przegląd według dokładnych miejsc, w których style zostały przedefiniowane. (duży podgląd)

Ponadto na danej stronie możesz wyróżnić wszystkie instancje, które pasują do określonego selektora. Na przykład, jeśli zauważysz błąd z renderowaniem obrazów profilowych w ciemnych i jasnych częściach strony, możesz podświetlić wszystkie wystąpienia określonej klasy bez ręcznego ich wyszukiwania lub dodawania dodatkowych stylów, aby je wyróżnić. Wystarczy zlokalizować selektor w panelu Style i wybrać ikonę celu, aby „podświetlić wszystkie elementy pasujące do tego selektora”.

Podświetlanie wszystkich elementów pasujących do selektora w Firefox DevTools.
Podświetlanie wszystkich elementów pasujących do selektora w Firefox DevTools. (duży podgląd)

W panelu „Style” Firefox wyjaśnia również, które właściwości CSS nie mają wpływu na wybrany element i dlaczego, wraz z zaleceniami, co może pomóc w rozwiązaniu problemu lub uniknięciu nieoczekiwanego zachowania (funkcja nazywa się nieaktywnym CSS).

Nieaktywna funkcja CSS
Przydatne uwagi na temat właściwości CSS, które nie wpływają na wybrany element i dlaczego, wraz z przydatnymi zaleceniami. (duży podgląd)

Inną przydatną funkcją jest to, że Firefox przypisuje znaczniki scroll i overflow do elementów, które powodują przepełnienie lub przewijanie kontenera (debugowanie przepełnienia) — bardzo przydatne, gdy próbujesz dowiedzieć się, dlaczego nagle pojawia się poziomy pasek przewijania lub element się nie pojawia. nie zachowywać się zgodnie z oczekiwaniami.

Rekursywne rozszerzanie węzłów (Chrome, Edge, Firefox)

Podczas sprawdzania elementu z głęboko zagnieżdżonym DOM czasami może zająć trochę czasu przejście w dół drzewa, od jednego zagnieżdżonego węzła do drugiego. Klikając prawym przyciskiem myszy strzałkę na węźle, możesz wybrać "Rozwiń rekursywnie", a aktualnie wybrany węzeł (i wszystkie jego dzieci) rozwinie się jednym kliknięciem. Alternatywnie możesz przytrzymać Option (lub Ctrl + Alt w systemie Windows), klikając ikonę strzałki obok nazwy elementu.

Węzeł „Rozwiń rekurencyjnie”
Rekurencyjne rozszerzanie węzła za pomocą szybkiego skrótu. (duży podgląd)

Zbierz i wyeksportuj pokrycie kodu (Chrome, Edge)

Na danej stronie znaczna część CSS i JavaScript może w ogóle nie być używana, chociaż zostanie ona wysłana do przeglądarki. Panel „Zasięg kodu” (menu Polecenie → „Pokaż pokrycie”) pozwala sprawdzić, które style i kod nie są używane na danej stronie. Używamy pokrycia kodu do zbierania krytycznych CSS dla każdego szablonu używanego w witrynie, a robienie tego ręcznie może być dość męczące.

Panel pokrycia kodu
Odkrywanie ilości używanego i nieużywanego CSS i JavaScript, z pokryciem kodu. (duży podgląd)

Po wdrożeniu „Zasięgu kodu”, przechodząc przez kilka scenariuszy, które obejmują wiele stukania, tabulacji i zmiany rozmiaru okna, eksportujemy również dane pokrycia zbierane przez DevTools w formacie JSON (za pośrednictwem ikony eksportu/pobierania). Ponadto możesz użyć Puppeteer, który zapewnia również API do zbierania zasięgu (ale jeszcze nas tam nie ma).

Debugowanie zapytań o media (Chrome, Edge)

Mając dziesiątki zapytań o media w locie dla danej strony, śledzenie stylów zastępowanych przez inne style objęte zakresem zapytania o media może być trudne. Aby znaleźć konkretną sekcję w pliku CSS, która może powodować nieoczekiwane zachowanie, możemy zwrócić uwagę na debuger zapytań o media . Domyślnie jest ukryty za trybem „Ustawienia” na pasku narzędzi urządzenia, ale w rzeczywistości jest bardzo pomocny, gdy jest domyślnie dostępny.

Poziome paski u góry wskazują zapytania o media i zakresy punktów przerwania, zaczynając od środka i idąc na zewnątrz. Te bliżej środka ekranu są zastępowane przez te znajdujące się dalej od środka.
Poziome paski u góry wskazują zapytania o media i zakresy punktów przerwania, zaczynając od środka i idąc na zewnątrz. Te bliżej środka ekranu są zastępowane przez te znajdujące się dalej od środka. (duży podgląd)

Przełącz pasek narzędzi urządzenia (tryb responsywny) za pomocą Cmd/Ctrl + Shift + M i wybierz trzy kropki w prawym górnym rogu. Następnie wybierz „Pokaż zapytania o media”. Teraz powinieneś być w stanie zobaczyć poziome paski reprezentujące zakres każdego zapytania o media .

Na początku mogą wydawać się nieco mylące, ale sposób, w jaki te paski są wyrównane, reprezentuje szerokość ekranu i jest replikowany po lewej i prawej stronie widocznego obszaru. Paski bliżej środka ekranu są zastępowane przez te znajdujące się dalej od środka. Niebieski pasek u góry oznacza zapytania o media max-width , zielony o min-width i max-width zapytania o media, a pomarańczowy — tylko zapytania o media o min-width .

W przypadku wszystkich pasków możesz śledzić, które zapytania o media zawierają, gdy najedziesz na nie kursorem. Możesz przejść do określonego zakresu zapytań o media i szczegółowo sprawdzić problemy z układem przy otwartym panelu Style. Klikając dowolną pozycję na słupku, możesz wywołać określone punkty przerwania, a jeśli klikniesz prawym przyciskiem myszy na słupku, możesz ujawnić jego pozycję w kodzie źródłowym. W rzeczywistości możesz szybko przeskakiwać tam iz powrotem między zapytaniami o media, zamiast ręcznie zmieniać rozmiar ekranu i ciągle sprawdzać szerokość ekranu.

Na marginesie, możesz również określić niestandardowe emulowane urządzenia zamiast wstępnie zdefiniowanych — w rzeczywistości dostępnych jest już wiele ustawień wstępnych urządzeń. Ponadto w razie potrzeby możesz użyć panelu "Czujniki", aby kontrolować określone czujniki urządzenia. Dodatkowo w Firefoksie można włączać i wyłączać symulację dotyku oraz zdefiniować konkretnego User Agenta, np. po to, by sprawdzić, jak strona zachowuje się z robotem wyszukiwarki żądającym strony.

Emuluj zapytania dotyczące mediów preferencji (Chrome, Edge, Firefox)

Oprócz zapytań o media związanych z rozmiarem ekranu możemy również emulować zapytania o media związane z ułatwieniami dostępu, np. prefers-color-scheme , prefers-reduced-motion i Visions. Aby przełączyć emulację, przejdź do panelu sterowania poleceniami ( Cmd / Ctrl + Shift + P ) i wpisz „Pokaż renderowanie”. Teraz w ustawieniach możesz wybrać preferowaną emulację.

(Tutaj również możesz wybrać, aby podświetlić obszary, które wymagają przemalowania („Miganie farbą”), obszary, które zostały przesunięte („Regiony przesunięcia układu”) i debugować problemy z wydajnością przewijania.)

DuckDuckGo obsługuje tryb ciemny od razu po wyjęciu z pudełka, używając zapytania o media prefers-color-scheme.
DuckDuckGo obsługuje tryb ciemny od razu po wyjęciu z pudełka, używając zapytania o media prefers-color-scheme. (duży podgląd)

Mówiąc o emulacji: pamiętasz, jak w przeszłości mogłeś mieć problemy ze znalezieniem błędu układu dla arkusza stylów drukowania? W tym samym panelu możesz również wyświetlić podgląd, jak działają Twoje style drukowania — nie ma potrzeby ciągłego drukowania pliku PDF losowej strony, aby dowiedzieć się, co spowodowało poważny problem z renderowaniem.

Ponadto w tym samym panelu w Chrome możesz dodać wszelkiego rodzaju funkcje debugowania renderowania — np. flashowanie farby, obramowanie warstw, problemy z wydajnością przewijania, wyłączanie AVIF i WebP.

Na marginesie, istnieje opcja paska narzędzi DevTools dla „ Force Dark Appearance ” i „ Force Print Media style ” w Safari, a w przeglądarce Firefox można symulować wady wzroku. (Później porozmawiamy o ułatwieniach dostępu). W przeglądarce Firefox widok wydruku jest również dostępny nad panelem „Style” w trybie „Sprawdź”.

Automatycznie otwieraj DevTools w każdej nowej karcie (Chrome)

Dzięki audytom wydajności możemy chcieć badać wiele stron jednocześnie i obserwować, jak zachowują się z oddzielnymi DevTools, bez zastanawiania się, które DevTools jest odpowiedzialne za które okno. Aby zaoszczędzić trochę czasu podczas debugowania, możesz utworzyć skrót za pomocą polecenia Terminal , które otworzy przeglądarkę z DevTools automatycznie otwierającym się domyślnie w każdej nowej karcie.

Aby to osiągnąć, musimy przekazać flagę --auto-open-devtools-for-tabs podczas uruchamiania przeglądarki Chrome opartej na Edge. Uruchamiamy prosty skrypt Alfred, aby w razie potrzeby otworzyć przeglądarkę Canary z flagą (kapelusz dla Addy) — bardzo przydatny, gdy naprawdę tego potrzebujesz:

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --auto-open-devtools-for-tabs htps://www.smashingmagazine.com

Bardzo obszerny przegląd wszystkich przełączników wiersza poleceń Chrome i Edge można znaleźć w przewodniku Petera Beverloo dotyczącym przełączników wiersza poleceń Chrome.

Zrzuty ekranu z całej strony (Chrome, Edge, Firefox)

Wybierając węzeł HTML w panelu „Elementy”, możesz kliknąć węzeł prawym przyciskiem myszy i poprosić DevTools o utworzenie zrzutu ekranu tego węzła, a w „Trybie responsywnym” możesz zrobić zrzut ekranu widocznej części stronę lub zrzut ekranu w pełnym rozmiarze (trzy kropki w prawym górnym rogu).

Aby nieco szybciej utworzyć pełnowymiarowy zrzut ekranu , możesz również wyświetlić „Zrzut ekranu całego strony” w menu poleceń ( Cmd / Ctrl + Shift + P → „Zrzut ekranu całego strony”). Zwykle jest trochę szybszy. Pamiętaj tylko, że części strony, które są ładowane z opóźnieniem lub renderowane progresywnie (np. z content-visibility ) mogą nie wyświetlać się prawidłowo na zrzucie ekranu, więc może być konieczne wcześniejsze przewinięcie strony w dół.

W przeglądarce Firefox możesz wygenerować zrzut ekranu widocznej części strony , przechodząc najpierw do trybu „Pasek narzędzi urządzenia”, a następnie zauważając ikonę aparatu w prawym górnym rogu i aktywując ją. Lub w przypadku zrzutu ekranu całej strony musisz najpierw przełączyć „Zrób zrzut ekranu całej strony” w „Ustawieniach”, a następnie znajdziesz ikonę aparatu na pasku narzędzi DevTools.

Linijki dla komponentów (Chrome, Edge, Firefox)

Być może chciałbyś szybko sprawdzić szerokość i wysokość obrazu lub spotu reklamowego. Ale zamiast robić zrzut ekranu lub sprawdzać element i kopiować/wklejać wartości width i height , możesz użyć reguł do pomiaru rozmiaru komponentu. Reguły są dostępne we wszystkich nowoczesnych przeglądarkach, ale Firefox DevTools pozwala również zmierzyć część strony . Narzędzie pomiarowe można znaleźć po prawej stronie DevTools, tuż obok ikony „Tryb responsywny”.

Władcy
Mierzenie części strony po wyjęciu z pudełka za pomocą przeglądarki Firefox. (duży podgląd)

Śledzenie zmian (Chrome, Edge, Firefox)

Kiedy debugujesz konkretny problem, być może skomentowałeś kilka wierszy kodu i prawdopodobnie dodałeś nowy kod, który wydaje się naprawiać problem na dobre. Twoje zmiany muszą teraz zostać zreplikowane w rzeczywistych plikach źródłowych. Aby to zrobić, nie ma potrzeby ręcznego zbierania wszystkich zmian, które wprowadziłeś we wszystkich plikach.

W Chrome przełącz polecenie „Lokalne modyfikacje” podczas edycji pliku źródłowego. Powinieneś zobaczyć tracker zmian pojawiających się w panelu poniżej. Jeśli jest zwinięty, wyciągnij go, przeciągając pionowo. Panel podświetla zmienione właściwości i dokładnie to, co się zmieniło, dzięki czemu możesz od razu skopiować i wkleić modyfikacje.

Panel Lokalne modyfikacje, wywoływany ze zmian w kodzie źródłowym.
Możesz wywołać panel „Lokalne modyfikacje” z poziomu zmian w kodzie źródłowym. (duży podgląd)
Nie musisz śledzić zmian: Devtools zrobi to za Ciebie, korzystając z panelu „Zmiany”.
Nie musisz śledzić zmian: Devtools zrobi to za Ciebie, korzystając z panelu „Zmiany”. (duży podgląd)

Należy pamiętać, że prawdopodobnie dobrym pomysłem jest śledzenie zmian podczas działania serwera lokalnego — bez automatycznego usuwania podziałów wierszy i spacji, ponieważ one również byłyby wyświetlane jako zmiany. Ten problem nie występuje w Firefoksie, gdzie można również znaleźć okienko „Zmiany” , które robi to samo, wraz z przyjaznym przyciskiem „Kopiuj wszystkie zmiany”.

Okienko "Zmiany" w Firefoksie śledzi wszystkie wprowadzone zmiany.
Okienko "Zmiany" w Firefoksie śledzi wszystkie wprowadzone zmiany. (duży podgląd)

Zastąpienia lokalne (Chrome, Edge)

Być może już wcześniej byłeś w takiej sytuacji: chcesz po prostu poeksperymentować z kilkoma zmianami, ale możesz się bać przypadkowego kliknięcia „Odśwież” w przeglądarce, aby utracić wszystkie zmiany wprowadzone na stronie. Być może nie możesz tak naprawdę uruchomić witryny lokalnie , a może po prostu nie chcesz uruchamiać całej swojej kompilacji dla drobnych lokalnych modyfikacji. W takich przypadkach „Local Overrides” Chrome może być darem niebios.

Najpierw utwórz folder na swoim komputerze, w którym będą przechowywane wszystkie lokalne modyfikacje ( local-overrides na pulpicie wydaje się rozsądną nazwą i miejscem dla tego rodzaju zadań). Następnie przejdź do zakładki „Źródła” i wybierz „Zastąpienia” w lewym górnym rogu DevTools (może być ukryty za podwójnym szewronem). Teraz kliknij „Wybierz folder do zastąpień” i wybierz świeżo utworzony folder — jest to folder, którego Chrome będzie używał do przechowywania lokalnych modyfikacji. Musisz kliknąć „Zezwól”, aby przyznać Chrome uprawnienia do zapisywania plików na dysku twardym.

Teraz możesz wybrać dowolny plik w panelu „Źródła”, kliknąć prawym przyciskiem myszy w dowolnym miejscu kodu i wybrać „Zapisz do zastąpienia” prawym przyciskiem myszy. To wskazówka dla Chrome, aby utworzyć nowy plik i przechowywać całą zawartość pliku wraz z modyfikacjami na dysku twardym. (Możesz najpierw kliknąć przycisk {} , aby kod był nieco bardziej czytelny). ( Dzięki Trysowi za podpowiedź! )

Panel „Źródła”
Fioletowa ikona obok pliku źródłowego wskazuje, że plik jest przechowywany lokalnie, poprzez lokalne nadpisania. (duży podgląd)

Po zdefiniowaniu lokalnych zastąpień Chrome przechwyci żądania sieciowe i użyje Twojego kodu zamiast rzeczywistej odpowiedzi. Będzie również zwracał uwagę na modyfikacje wprowadzone do pliku i automatycznie wprowadzał zmiany na stronę , tak jakbyś miał zainstalowany program lokalny z włączonym trybem obserwacji. Wszystkie pliki, które są nadpisywane przez nadpisania lokalne, będą miały obok nich małą fioletową kropkę w panelu „Elementy”.

Najlepsza część : teraz możesz otworzyć plik w edytorze tekstu i wprowadzać z niego zmiany , jednocześnie widząc te zmiany pojawiające się również w DevTools — a jeśli musisz przełączyć się na DevTools, aby dodać punkty przerwania, możesz to zrobić z DevTools, zmiany w kodzie, a te zmiany będą również widoczne w twoim edytorze tekstu. Prawie magia!

przykład ciągu zapytania
Porada profesjonalisty od fana lokalnych przesłonięć, Harry'ego Robertsa: dołącz ciąg zapytania do adresu URL, a będziesz mógł załadować oddzielne warianty tej samej strony. (duży podgląd)

Porada profesjonalisty od Harry'ego Robertsa: Zastąpienia lokalne nie pozwalają na przechowywanie ani śledzenie wersji lub wariantów, ale możesz dołączyć ciąg zapytania do adresu URL i załadować oddzielne warianty tej samej strony. Niezwykle przydatne podczas edycji stron HTML.

Ach, a jeśli chcesz ponownie wyłączyć lokalne zastąpienia, po prostu zaznacz opcję „Włącz lokalne zastąpienia” w tym samym okienku — w przeciwnym razie style będą zastępować istniejące style w kółko, czego możesz nie chcieć.

Zdalne debugowanie (Chrome, Safari)

Jeśli chcesz debugować swoje aplikacje lub strony na telefonie komórkowym, możesz użyć serwera proxy Devtools dla urządzeń z systemem iOS, aby debugować Chrome w systemie iOS, a także użyć DevTools do debugowania Mobile Safari na iOS za pomocą Chrome DevTools.

Aby debugować Mobile Safari za pomocą Inspektora Safari, włącz „Inspektor sieciowy” w „Ustawienia → Safari → Zaawansowane → Inspektor sieciowy” i otwórz debugger za pomocą „Rozwój” → (nazwa Twojego telefonu). Powinieneś otworzyć dla ciebie DevTools Safari.

W przypadku urządzeń z systemem Android otwórz Opcje programisty w systemie Android i wybierz „Włącz debugowanie USB” . Na swoim komputerze deweloperskim możesz następnie odkryć swoje urządzenie mobilne, przechodząc do chrome://inspect#devices i wybierając „Zdalny cel”. Możesz znaleźć wiele szczegółów i instrukcji na temat „Pierwsze kroki ze zdalnym debugowaniem urządzeń z Androidem”. Tam też można znaleźć dedykowane DevTools do debugowania Node.js.

Debugowanie mobilnej strony internetowej za pomocą narzędzia Safari Inspector
Debugowanie mobilnej strony internetowej za pomocą narzędzia Safari Inspector. (duży podgląd)

Wstrzymaj wykonywanie skryptu (Chrome, Edge, Firefox)

Podczas testowania krytycznego CSS lub debugowania JavaScript możesz chcieć trzymać się stanu DOM przed wykonaniem określonego skryptu lub zastosowaniem określonego stylu. Do tego służą punkty przerwania zmiany DOM w DevTools.

Klikając prawym przyciskiem myszy na trzy złowieszcze kropki obok nazwy elementu, można było wybrać modyfikacje poddrzewa „Przerwij” (wstawianie i usuwanie węzłów w drzewie DOM zakorzenionym w danym węźle), modyfikacje atrybutów (np. gdy atrybut zostanie dodany lub usunięta lub zmieni się wartość atrybutu — np. z klasami) lub usunięcie węzła.

Warunkowy punkt przerwania wiersza kodu w wierszu 32.
Warunkowy punkt przerwania wiersza kodu w wierszu 32. (duży podgląd)

Możesz jednak również użyć warunkowego punktu przerwania wiersza kodu, jeśli znasz dokładny region kodu, który chcesz zbadać, ale chcesz wstrzymać tylko wtedy, gdy inny warunek jest spełniony. Ponadto nie należy zapominać o punktach logowania, które wyświetlają wartość we fragmencie kodu bez ciągłego pisania pliku console.log .

Fragmenty kodu (Chrome, Edge)

Jeśli masz kilka fragmentów kodu, których często używasz do śledzenia, co mogło spowodować nieprawidłowe zachowanie, możesz przechowywać te fragmenty i uzyskiwać do nich dostęp w okienku „Snippets”. W pewnym sensie te fragmenty JavaScript są podobne do bookmarkletów, ale w przeciwieństwie do tych ostatnich, możesz nimi zarządzać z wygodnego dedykowanego obszaru w DevTools.

Ponieważ są to skrypty, możemy dodać punkty przerwania, gdy te skrypty są uruchomione, lub wybrać część kodu w „Snippets” i uruchomić tę konkretną część kodu zamiast wykonywać cały fragment.

Okienko „Snippets” znajduje się wśród „Źródeł”, obok „Lokalne zastąpienia”. Po dodaniu fragmentu możesz go uruchomić, klikając prawym przyciskiem myszy i wybierając „Uruchom” lub naciskając Cmd/Ctrl + Enter . Oczywiście każdy fragment kodu jest również dostępny z Panelu poleceń.

Ogólnie rzecz biorąc, jeśli zauważysz, że ciągle wykonujesz rutynowe zadanie, istnieje duża szansa, że ​​możesz chcieć umieścić je w „Fragmentach kodu” i zautomatyzować to zadanie za pomocą skryptu. DevTools Snippets zawiera kilka przydatnych skryptów do pomijania pamięci podręcznej, pokazujących nagłówki i zapisywania obiektów jako pliki .json z konsoli, ale możesz ich użyć do modyfikacji DOM lub wyświetlania przydatnych informacji, takich jak znaczniki wydajności (co robimy). Dodatkowo możesz również podłączyć CSS diagnostyki wydajności, aby wskazać obrazy ładowane z opóźnieniem, obrazy o nierozmiarowanym rozmiarze lub skrypty synchroniczne.

Uruchom niestandardowe testy automatyczne (Safari)

Jedną z często zapominanych funkcji Safari DevTools jest możliwość zdefiniowania i uruchomienia serii automatycznych kontroli. Pomyśl o tym jako o niestandardowym zestawie testów , z serią małych testów, które można w pełni zdefiniować na podstawie rodzaju audytu, jaki chciałby przeprowadzić programista. Domyślnie zestaw testów koncentruje się na dostępności, ale możesz ją dostosować według własnego uznania, np. w celu sprawdzenia, czy w DOM są jakieś skrypty synchronizacji lub czy wszystkie obrazy mają zdefiniowany atrybut width i height , lub nawet jeśli wszystkie obrazy są leniwie ładowane. ( dzięki Nikita! )

Panel „Audyt” Safari DevTools, z serią małych automatycznych testów
Panel „Audyt” Safari DevTools, zawierający serię małych automatycznych testów. (duży podgląd)

Mapy źródeł (Chrome, Edge, Firefox)

Podczas debugowania kodu produkcyjnego niezwykle przydatna jest możliwość śledzenia zmian w określonym składniku lub module, którego używasz w bazie kodu. Aby zmapować zminifikowany kod do kodu źródłowego, możemy użyć map źródłowych. Jeśli wygenerujesz mapę źródłową jako część kompilacji, możesz użyć map źródłowych podczas debugowania kodu w DevTools .

W przeglądarce Chrome musisz włączyć mapy źródłowe dla JavaScript i CSS w „Ustawieniach”, a następnie dodać folder do „Przestrzeń robocza”. DevTools z następnie spróbuj automatycznie wywnioskować wszystkie mapowania i załadować pliki źródłowe oprócz plików zminimalizowanych. Następnie możesz odczytać i debugować skompilowany kod w jego oryginalnym źródle. Co więcej: nadal możesz przejść przez swoje punkty przerwania, a wszystkie błędy, logi i punkty przerwania będą mapowane na rzeczywisty kod. Aby zbudować mapę źródłową, pomocne może być narzędzie Webpack's Devtool.

For Firefox, once the source map is generated, a transformed file has to include a comment that points to the source map . Just make sure that your bundler does the job for you. Once it's in place, in the source list pane, the original source (.scss or .ts files) will appear, and you can debug it right there.

Clear Service Worker's Cache And Storage (Chrome, Edge)

When we hit “Hard Refresh” in the browser, the browser will not use anything from the cache when reloading the page. Instead, it will re-fetch all assets from the server, without relying on caching.

Empty Cache and Hard Reload option
Empty Cache and Hard Reload option in the browser, with DevTools open. (duży podgląd)

If you right-click the “Refresh” button with DevTools open, you'll find another option: “Empty Cache and Hard Reload”. The difference is that if the page prompts any dynamic fetches via JavaScript, they might still use the cache. The latter option clears them, too, while the former doesn't.

“Clear site data” option
Clearing site data, including service worker's cache, cookies and all stored data at once. (duży podgląd)

Both of these options, however, don't clear cookie or service worker's cache — which you might want to do in some scenarios. Jump to the Command menu ( Cmd + Shift + P ) and type/autocomplete “Clear site data”. When this option is activated, the browser will clean all of the data (as the name assumes), including the service worker's cache as well as the unregistering of the service worker. (Alternatively, you can click “Clear Site Data” in the Application panel.)

And if you want to delete only cache or only cookies quickly, you can right-click on any request in the “Network” panel, and choose “Clean browser cache” from there.

In Firefox, you'll need to head to the “Privacy & Security” panel and find the “Cookies and Site Data” section there.

Filters In The Network Panel (Chrome, Edge, Firefox)

There seems to be not much to explore in the “Network” panel as it basically just shows the list of browser requests (along with server responses) in chronological order. However, there are plenty of obscure little helpers as well.

First of all, with an overview of requests in front of us, we can choose which columns we'd like to see . Right-click on the header of one of the columns and select the ones that you find useful for the task at hand. We always choose the “Priority” column to see in which priorities assets are being requested, and if we need to adjust that order to deliver critical assets faster (based on JavaScript Resource Loading Priorities in Chrome, Edge).

Examples of commands for filtering
There are plenty of options for filtering requests in the 'Network' panel, accessible with a prefix `-`. (duży podgląd)

We can also filter requests to find specific ones that might be causing trouble ( thanks for the tip, Harry ). At the top of the “Network” panel you'll find an input field, which accepts not only keywords but also commands for filtering. Here are a few examples of the useful ones:

  • is:from-cache shows all resources that were delivered from the cache,
  • is:service-worker-initiated , shows only requests prompted by a service worker,
  • is:running shows all incomplete or unresponsive requests,
  • larger-than:250k shows all resources that are larger than 250 Kb,
  • -larger-than:250k shows all resources that aren't larger than 250 Kb (same size and smaller),
  • mixed-content: shows all assets that are loaded over HTTP instead of HTTPS,
  • -has-response-header:Cache-Control highlights assets that don't have any caching headers,
  • Obviously we can also search for bad practices like document.write and @import in HTML and CSS, plus we can use regular expressions as well.

All filters can be combined as well, separated by an empty space. You can check a comprehensive list of all filters as well, or just type - in the filters input and get an autocomplete preview of all features ( huge thanks to Harry for the tip! ).

Check Initiators In The Network Panel (Chrome, Edge)

If you want to quickly check which assets a particular resource has requested, or by which resource an asset was requested, there is a simple way to discover it in DevTools as well. This is especially useful in cases where you might have a couple of third-party scripts that might be calling fourth-party-scripts.

Initiators In The Network Panel
Check the initiators by holding 'Shift' when hovering over a request. (duży podgląd)

When you are inspecting a request in the “Network” panel, hold Shift while hovering over an element. The pink background color will indicate resources that this element has prompted to download, and the green background color will indicate the initiator that actually prompted the request.

Choose a User Agent (Chrome, Edge, Firefox)

Sometimes you might want to check how the page will render with a different user agent, eg to make sure that a Googlebot gets a properly rendered version of the page. By heading to “Network conditions”, you can define the behavior for caching, network throttling and a user agent.

Domyślnie ta ostatnia jest „automatyczna”, ale istnieje 10 predefiniowanych grup, od GoogleBot Desktop i Mobile po Androida i przeglądarkę UC. W razie potrzeby możesz również zdefiniować własnego agenta użytkownika . Jednak te ustawienia nie zostaną zachowane podczas przechodzenia z jednej karty do drugiej.

W przeglądarce Firefox musisz przejść do strony about:config w Firefoksie i zdefiniować ciąg znaków general.useragent.override .

Zmień zachowanie przewijania w panelu wydajności (Chrome, Edge)

Na pierwszy rzut oka panel Wydajność może wydawać się dość zniechęcający z wykresami płomieni , dużą ilością danych wyświetlanych jednocześnie i dość niekonwencjonalnym zachowaniem podczas przewijania. Domyślnie zwykłe przewijanie w pionie działa jak powiększanie wybranej części osi czasu, ale możemy to zmienić.

„Kółko myszy Flamechart
Zmiana zachowania powiększania panelu Wydajność w ustawieniach Chrome. (duży podgląd)

W „Ustawieniach” możesz przełączyć „Akcję kółka myszy Flamechart” z „Zoom” na „Przewijanie” — i voila, preferowane przewijanie zostanie zachowane! Ale co, jeśli chcesz używać zarówno powiększania, jak i przewijania ? Kluczową wskazówką jest przytrzymanie „Shift” podczas przewijania, aby przełączyć preferowane zachowanie.

Zrozumienie wydajności panelu (Chrome, Edge)

Pamiętasz „Oś czasu: inicjatory zdarzeń” i „Oś czasu: śledzenie unieważnień”, o których wspominaliśmy w ustawieniach eksperymentu? Te eksperymentalne funkcje przydają się w panelu Wydajność, gdy szukasz przyczyny kosztownych operacji — tak zwanych długich zadań (zadań, których ukończenie trwa ponad 50 ms). Celem jest wtedy rozbicie długich zadań na krótsze, i zwykle sensowne jest skoncentrowanie się najpierw na najdłuższych długich zadaniach.

Przejdź do panelu Wydajność i rozpocznij profilowanie za pomocą Cmd/Ctrl + Shift + E . Po pewnym czasie potrzebnym na odświeżenie i zebranie danych te kosztowne, długie zadania pojawią się na osi czasu, podświetlone czerwonym prostokątem w prawym górnym rogu. Ich długość wskazuje, jak kosztowna jest w rzeczywistości operacja. Zadania mają przyjazny budżet do ukończenia wynoszący 50 ms , dlatego pierwsza 50-milimetrowa część zadania jest wyświetlana w kolorze szarym. Zawsze, gdy przekraczasz ten budżet, reszta zadania jest podświetlona czerwono-szarymi paskami.

Opcja „Oceń skrypt”
Panel wydajności może być dość zniechęcający, ale wystarczy wyciągnąć panel „Podsumowanie” na dole, aby to zrozumieć. (duży podgląd)

Wykres płomieniowy to wizualizacja tego, z czego składa się każde zadanie. Wszystkie części zadania są wyświetlane pod rzeczywistymi zadaniami, z żółtym tłem przedstawiającym skrypty. Jeśli klikniesz „Oceń skrypt” pod każdym z zadań, możesz otworzyć szufladę „Podsumowanie” na dole i zobaczyć, który skrypt spowodował koszt. Jeśli klikniesz fioletowy pasek oznaczony „Przelicz styl” , DevTools pokaże, co dokładnie spowodowało unieważnienie stylów.

Przelicz inicjator stylu wyświetlany w DevTools
Jeśli klikniesz fioletowy pasek oznaczony „Przelicz styl”, DevTools pokaże, co dokładnie spowodowało unieważnienie stylów. (duży podgląd)

Prawdopodobnie najbardziej niedocenianą funkcją DevTools jest rzeczywiście szuflada „Podsumowanie” , która pokazuje również, które elementy zostały dotknięte przekalkulowaniem stylu (abyś mógł od razu do nich przejść) i co zainicjowało to zadanie.

Debugowanie animacji Janky z warstwami (Chrome, Edge, Safari)

Wystarczy kilka animacji, być może z odrobiną paralaksy, przesuwaną nawigacją lub złośliwą manipulacją z-index, aby natrafić na spadające klatki i niestabilne animacje . Miernik FPS z panelu wydajności (Chrome) pokaże, czy klatki działają płynnie, ale jeśli tak nie jest, możesz zbadać problemy z renderowaniem w zakładce „Warstwy”.

Zakładka „Warstwy”
Wszystkie warstwy w akcji, z zakładką „Warstwy”. (duży podgląd)

Niektóre problemy można łatwo wykryć, śledząc, które elementy nie will-change , a które wykorzystują nieproporcjonalną ilość pamięci . W ten sposób zauważyliśmy duży komponent, który był ukryty poza ekranem z względnym położeniem -1000px poza ekranem, co powodowało użycie kilku MB pamięci. Ponadto podczas debugowania problemu z kanwą należy pamiętać, że Safari ma debuger użycia pamięci kanwy.

Debuger Z-Index widoku 3D (krawędź)

Innym pomocnym narzędziem do śledzenia problemów z renderowaniem i indeksem Z jest widok 3D DOM w Edge („Ustawienia” → „Więcej narzędzi” → Widok 3D). Narzędzie zapewnia interaktywną wizualizację warstw DOM i z-index . Możesz nawet wybrać wyświetlanie DOM w kolorze z rzeczywistymi kolorami tła elementów DOM lub wyświetlać tylko konteksty stosu.

Naprawdę nigdy nie było prostsze zobaczyć, jak wartości z-index są rozłożone na stronie i dlaczego nakładki lub panele nie pojawiają się zgodnie z oczekiwaniami po uruchomieniu.

Widok 3D DOM
Wizualizacja 3D DOM w MS Edge, aby śledzić, jak głęboki i zagnieżdżony jest faktycznie DOM. (duży podgląd)
wartości indeksu z
Wizualizacja 3D jest również przydatna do debugowania z-index. (duży podgląd)

Lepsze profilowanie ułatwień dostępu (Chrome, Edge, Firefox)

Czy nie byłoby wspaniale mieć uniwersalne narzędzie ułatwień dostępu , które dostarczałoby szczegółowych informacji i wskazówek na temat wszystkiego, od kolejności tabulacji po atrybuty ARIA i ogłoszenia czytnika ekranu? Aby się do tego zbliżyć, stworzyliśmy dedykowany profil ułatwień dostępu z przydatnymi rozszerzeniami i bookmarkletami wspomnianymi na początku artykułu. Jednak DevTools zapewnia również kilka przydatnych funkcji po wyjęciu z pudełka.

W Chrome Edge, przy wyborze koloru, mały pomocnik pokazuje granicę, którą musisz przekroczyć, aby uzyskać stopień AA/AAA.
W Chrome Edge, przy wyborze koloru, mały pomocnik pokazuje granicę, którą musisz przekroczyć, aby uzyskać stopień AA/AAA. (duży podgląd)

W Chrome i Edge panel „Dostępność” pokazuje drzewo ułatwień dostępu, użyte atrybuty ARIA i obliczone właściwości. Korzystając z próbnika kolorów, możesz sprawdzić i wygodnie dostosować kolory, aby dostosować je do współczynnika kontrastu zgodnego z AA/AAA (wraz z możliwością przełączania między HEX, RGB, HSL za pomocą Shift + Kliknij próbkę — dzięki Ana! ).

Jak już wspomniano, panel „Rendering” pozwala również na emulację wad wzroku. Audyty latarni morskich obejmują również sekcję z zaleceniami dotyczącymi dostępności strony. Ponadto, gdy sprawdzasz element, informacje o dostępności również pojawiają się w przeglądzie.

Etykietka trybu inspekcji z informacjami o ułatwieniach dostępu.
Etykietka trybu inspekcji z informacjami o ułatwieniach dostępu. (duży podgląd)
Zaawansowane narzędzia ułatwień dostępu w Firefoksie, z kontrolami i rekomendacjami ułatwień dostępu.
Zaawansowane narzędzia ułatwień dostępu w Firefoksie, z kontrolami i rekomendacjami ułatwień dostępu. (duży podgląd)

Firefox ma również zaawansowane narzędzia ułatwień dostępu. Oprócz drzewa ułatwień dostępu i sprawdzania kontrastu, Firefox DevTools wyróżnia role i punkty orientacyjne wraz z zaleceniami i kontrolami ułatwień dostępu . Na przykład możesz sprawdzić problemy z kontrastem na całej stronie, sprawdzić, czy wszystkie linki dają się skoncentrować i zawierają styl fokusa oraz przejrzeć etykiety tekstowe. Dodatkowo możesz również przełączać kolejność tabulacji.

Dodatkowo można zainstalować rozszerzenia skoncentrowane na ułatwieniach dostępu, takie jak Accessibility Insights, ax i a11y.css, a także kilka innych linters ułatwień dostępu i symulatorów widzenia kolorów.

Warty wspomnienia

Oczywiście istnieją dosłownie setki, a może nawet tysiące innych przydatnych funkcji dostępnych w DevTools. Wiele z nich jest dość znanych i nie trzeba ich zbyt wiele przedstawiać, ale warto o nich wspomnieć.

  • Inspektorzy CSS Grid / Flexbox (Firefox, Chrome, Edge)
    Jeśli masz jakiś problem z układem związany z Grid i Flexbox, prawdopodobnie znajdziesz przyczynę problemu za pomocą DevTools. Inspektorzy Grid i Flexbox są bardzo przydatni, ponieważ pokazują nakładkę siatki i granice kontenerów, a także wskazówki dotyczące wszystkiego, od flex-basis po grid-gap .

  • Wyrażenia na żywo
    Jeśli masz zwyczaj wpisywania tego samego wyrażenia JavaScript w konsoli, możesz rozważyć jego automatyzację za pomocą Live Expressions. Funkcja dostępna w przeglądarkach Chrome, Edge i Firefox umożliwia jednokrotne wpisanie wyrażenia, a następnie przypięcie go do górnej części konsoli, a wartość wyrażenia na żywo zostanie zaktualizowana automatycznie.

  • Panel animacji
    Firefox ma bardzo przydatny panel do śledzenia problemów z animacjami, w tym spowalniania i wizualizowania zmian elementu w czasie.

Panel animacji
Panel Animacje daje wgląd w animacje i pozwala odtwarzać je w zwolnionym tempie. (duży podgląd)
  • Panel Czcionki
    Firefox ma również poręczny panel „Czcionki”, który warto zbadać pod kątem wszelkiego rodzaju problemów związanych z czcionkami. Używaliśmy go dość często, próbując dopasować czcionkę zastępczą do czcionki internetowej, na przykład, ponieważ możesz poprawić właściwości typograficzne za pomocą suwaka i zobaczyć efekt w działaniu. Zapewnia również podgląd tekstu po najechaniu kursorem na rodzinę czcionek w stylach.
Panel Czcionki
Panel Czcionki w Firefoksie z kilkoma kontrolkami do dostosowania ustawień typograficznych. (duży podgląd)
  • Przegląd CSS
    Jeśli aktywujesz „Przegląd CSS” w eksperymentalnych ustawieniach Chrome, DevTools doda kartę z obszernym raportem deklaracji CSS użytych na stronie. Wymieni również wszystkie użyte kolory i czcionki, a także zapytania o media i nieużywane deklaracje, do których możesz od razu przejść.
Przegląd CSS
Przegląd CSS zapewnia dokładne podsumowanie CSS znalezionych na stronie. (duży podgląd)

I to jest okład!

Kiedy przystąpiliśmy do przygotowania tego przeglądu, miał on być dość krótki i zawierał tylko niektóre z przydatnych funkcji oferowanych przez DevTools. Okazało się, że istnieje wiele funkcji, o których nie wiedzieliśmy, zanim zaczęliśmy pisać ten artykuł — i mogliśmy na nie natknąć się z życzliwą pomocą wspaniałych czytelników Smashing, którzy dzielą się swoimi doświadczeniami na Twitterze. Dziękuję bardzo za życzliwy wkład!

Ogromne podziękowania dla wszystkich współtwórców wszystkich narzędzi DevTools we wszystkich przeglądarkach — doceniamy wasze wysiłki oraz czas i wysiłek, aby ulepszyć nasze środowisko programistyczne. To ma znaczenie.

Jeśli przegapiliśmy coś cennego , prosimy o odpowiedź w komentarzach. A jeśli znalazłeś coś przydatnego, mamy nadzieję, że będziesz w stanie od razu zastosować tych małych pomocników w swoim przepływie pracy i być może wysłać link do tego posta znajomemu lub dwóm znajomym — być może uznają to za przydatne. Ach, i nie zapomnij: możesz również debugować DevTools za pomocą DevTools — po prostu naciśnij Cmd/Ctrl + Shift + I dwa razy z rzędu. ;-)

A teraz życzę wszystkim miłego debugowania!