Moderní tvorba webových aplikací

O webu

Safari: co by měl vědět frontend vývojář

Shrnutí historie, rozdílů a testování Safari v praxi.

6 minut

Safari je prohlížeč od společnosti Apple. Dnes používá jádro WebKit, zatímco Google Chrome používá Blink (historicky z WebKitu vycházel).

Safari je tak Chrome historicky trochu podobné, ale najdou se aktuální rozdíly v podporovaných věcech i vykreslování.

Další podstatná věc je, že Safari má odlišný cyklus vydávání a některé moderní webové technologie do něj dorážejí později. I proto se občas říká, že „Safari je nový IE“ (narážející na prohlížeč Internet Explorer považovaný za brzdu internetu).

Hlavní verse Safari vychází s novým macOS přibližně jednou za rok (a drobné opravy několikrát za rok), zatímco Chrome se aktualisuje průběžně každých několik týdnů.

Historie

  • 2003: první vydání Safari pro macOS (tehdy Mac OS X).
  • WebKit: jádro Safari vzniklo forkem projektů KHTML a KJS (Konqueror).
  • 2007: uvedení iPhonu s Mobile Safari – start éry mobilního webu.
  • 2007–2012: Safari pro Windows (ukončeno, dnes jen macOS/iOS/iPadOS).
  • 2013: Google forkuje WebKit → vzniká Blink (Chrome, Chromium).
  • 2016: startuje Safari Technology Preview pro rychlejší test novinek.
  • 2017: Intelligent Tracking Prevention (ITP) – snaha omezit sledování uživatelů na webu pomocí cookies a dalších technik.
  • 2020: odstraněna podpora Flashe z macOS Safari (na mobilech fungovalo nikdy).
  • 2023: Web Push pro iOS/iPadOS (od 16.4) a lepší PWA integrace.
  • 2024: iOS 17.4 v EU umožňuje alternativní prohlížečová jádra za podmínek.

Dostupnost a platformy

Safari jde rozumně provozovat jen v macOS a iOS/iPadOS. Na ostatních platformách zbývá virtualisace nebo vzdálené testování (například BrowserStack). Pro frontend vývojáře to znamená, že se bez Apple zařízení pro testování webu v Safari moc neobejde.

iOS a WebKit

Dlouhá léta platilo, že na iPhonu a iPadu musí prohlížeče obecně používat stejné jádro jako Safari (WebKit). Od iOS 17.4 Apple v EU umožňuje alternativní renderovací jádra za splnění specifických podmínek; mimo EU platí WebKit-only.

Teoreticky tak mohou být i v Apple produktech jiné prohlížeče. Otázka je, jestli se někdy takového produkčního prohlížeče dočkáme, protože moc nedává smysl dělat 2 různé verse prohlížeče (pro EU a mimo EU).

Safari Technology Preview

Pro macOS existuje vývojová verze Safari, kde lze zkoušet nové funkce před jejich oficiálním vydáním: Safari Technology Preview.

Jak zapnout vývojářské nástroje

macOS

  1. Otevřít SafariNastavení… → záložka Pokročilé.
  2. Zaškrtniout Zobrazovat funkce pro webové vývojáře.
  3. Vývojářské nástroje jde otevřít přes Vývojář → Zobrazit Inspektor webu nebo zkratkou ⌥⌘I. Nebo pravé tlačítko a Prozkoumat prvek funguje po zapnutí DevTools.

iOS/iPadOS

Na zařízení: SettingsSafariAdvanced → zapnout Web Inspector (a volitelně Remote Automation).

Hezká je funkce vzdáleného připojení. Když se iPhone připojí kabelem k Macu, jde si zobrazit na počítači DevTools pro stránku na mobilu.

Vzdálený výoj

Proč Safari řešit

Safari mívá na projektech významný podíl uživatelů a většinou ho není rozumné ignorovat. Uživatelé Apple produktů navíc často víc utrácejí, takže i menší podíl návštěv může generovat nezanedbatelný podíl tržeb.

Výhody pro uživatele Applu

Safari je úzce integrované se systémem (například Klíčenka) a obvykle je velmi úsporné na baterii. Pro uživatele Apple produktů tak jde často o nejlepší volbu a dávají Safari přednost před Chromem/Edge/Firefoxem nebo jiným prohlížečem.

Rozdíly ve vykreslování a funkcích

  • Typografie: rozdíly v kerningu, ligaturách a hintingu i v textovém enginu → drobné odchylky v tloušťce, antialiasingu a zalamování řádků.
  • Zaokrouhlování rozměrů: rozdílné zaokrouhlování částí pixelů ve flexboxu a gridu může způsobit 1px mezery/posuny.
  • Viewport a scrollování: na mobilu se liší chování adresního řádku, viewport a jednotky 100vh/dvh.
  • Komposice/GPU: jiné heuristiky pro vytváření komposičních vrstev (transform, opacity, sticky) → rozdílné pořadí kreslení.
  • Formuláře: různý nativní vzhled formulářových prvků a možnosti stylování/pseudo‑elementů.
  • SVG a canvas: rozdíly v rychlosti a kvalitě vykreslování.
  • Média: Safari používá HEVC/HLS s nativním HDR a úsporným HW dekódováním, zatímco Chrome sází na VP9/AV1, což může znamenat jiné barvy, méně konsistentní tónové mapování a vyšší spotřebu.
  • Web API: Chrome má širší sadu experimentálních a hardwarových API (např. WebUSB, Web Bluetooth, Web Serial).
  • PWA a notifikace: iOS má přísnější omezení; Web Push na iOS je podporován od 16.4. Chrome nabízí plnou instalaci PWA napříč platformami.

Závěr

Safari má svá specifika a pomalejší tempo vývoje, ale vzhledem k zastoupení iOS a macOS uživatelů se mu při vývoji těžko vyhnete.

Související články

JavaScript Battery API

Jak v JS zjistit stav baterie, co dnes funguje a kdy API nepoužívat.

3 minuty

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025