惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
雷峰网
雷峰网
The Register - Security
The Register - Security
The Cloudflare Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
I
InfoQ
博客园 - 三生石上(FineUI控件)
H
Help Net Security
博客园 - 司徒正美
Vercel News
Vercel News
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
B
Blog
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
L
LangChain Blog
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recorded Future
Recorded Future
小众软件
小众软件
Martin Fowler
Martin Fowler
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Apple Machine Learning Research
Apple Machine Learning Research
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
V
Visual Studio Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
V
V2EX
Blog — PlanetScale
Blog — PlanetScale

Henri Sivonen’s pages

Parin vuoden tutkimattomuus crates.io: Rust Package Registry Asiakirjatonta toimintaa It’s not wrong that "🤦🏼‍♂️".length == 7 Koulutartuntojen tilastointimenettely Perusteasiakirjoja hallussapitämättä ikärajoitettu Asiantuntijat ja nukkuva vallan vahtikoira Koronapassilausunto Suppealla tietopohjalla ohimeneväksi väitetty Text Encoding Menu in 2021 The Text Encoding Submenu Is Gone An HTML5 Conformance Checker Not Part of the Technology Stack Browser Technology Stack Bogo-XML Declaration Returns to Gecko A Look at Encoding Detection and Encoding Menu Telemetry from Firefox 86 Why Supporting Unlabeled UTF-8 in HTML on the Web Would Be Problematic Rust Target Names Aren’t Passed to LLVM Toimintamalli Activating Browser Modes with Doctype Johtopäätöksiä mallin rakenteesta Tehtävänmäärittelyä kirjoittamatta ja kuolemia laskematta laumasuojamallinnettu Character Encoding Menu in 2014 Erillissuosituksen tarpeettomuudesta yleissuosituksen poikkeukseksi? STM:n maskiaikajana Rust 2021 Oma-aloitteisesti mallinnettu Kokopinovaatimuksin kilpailutettu chardetng: A More Compact Character Encoding Detector for the Legacy Web Varauksia paisutellen tiedotettu Perusteasiakirjoitta tiedotettu Always Use UTF-8 & Always Label Your HTML Saying So IME Smoke Testing The Validator.nu HTML Parser About the Hiragino Fonts with CSS It’s Time to Stop Adding New Features for Non-Unicode Execution Encodings in C++ Rust 2020 The Last of the Parsing Quirks About about:blank Rust 2019 a Web-Compatible Character Encoding Library in Rust How I Wrote a Modern C++ Library in Rust Using cargo-fuzz to Transfer Code Review of Simple Safe Code to Complex Code that Uses unsafe A Rust Crate that Also Quacks Like a Modern C++ Library #Rust2018 No Namespaces in JSON, Please A Lecture about HTML5 Julkisesti luotettu varmenne ikidomainille TLS:ää (SSL:ää) varten -webkit-HTML5 Lists in Attribute Values The Sad Story of PNG Gamma “Correction” If You Want Software Freedom on Phones, You Should Work on Firefox OS, Custom Hardware and Web App Self-Hostablility HTML5 Parser Improvements ARIA in HTML5 Integration: Document Conformance (Draft, Take Two) Schema.org and Pre-Existing Communities Lowering memory requirements by replacing Schematron HTML5 Parsing in Gecko: A Build Introducing SAX Tree NVDL Support in Validator.nu HOWTO Avoid Being Called a Bozo When Producing XML An Unofficial Q&A about the Discontinuation of the XHTML2 WG Thoughts on HTML5 Becoming a W3C Recommendation Four Finnish Banks Training Users to Give Banking Credentials to Another Site Unimpressed by Leopard Sergeant Semantics The Content Sink Inheritance Diagram – 2006-06-30 What is EME? About Points and Pixels as Units The Performance Cost of the HTML Tree Builder Social Media Impression Management The spacer Element Is Gone Openmind 2006 Performance Mistake XHTML and Mobile Devices WebM-Enabled Browser Usage Share Exceeds H.264-Enabled Browser Usage Share on Desktop (in StatCounter Numbers) HTML5 Parser-Based View Source Syntax Highlighting Vendor Prefixes Are Hurting the Web Accept-Charset Is No More Dualroids Writing Structural Stylable Document in Mozilla Editor ISO-8859-15 on haitallinen Hourglass The Scientific Method According to Hixie Maemo Source Code Karpelan lukkovertaus ontuu Digitaalisesta arkistoinnista ARIA in HTML5 Integration: Document Conformance (Draft) XHTML—What’s the Point? (Draft, incomplete) HOWTO Spot a Wannabe Web Standards Advocate An Idea About Intermediate Language Trees and Web UI Generation Thoughts on Using SSL/TLS Certificates as the Solution to Phishing Bureaucracy Meets the Web Europe Day HOWTO Establish a 100% Literacy Rate What to Do with All These Photos? Charmod Norm Checking Validator Web Service Interface Ideas DTDs Don’t Work on the Web EFFI’s Day in Court Speaking at XTech
Mac OS X Browser Comparison
Henri Sivonen · 2011-12-22 · via Henri Sivonen’s pages

Note: This page is severely outdated. I am keeping it available for historical reference. If you would like to improve on this document, please see the licensing information at the bottom of the page.

This document is a yes/no feature comparison of the graphical Web browsers that run natively on Mac OS X. It does not cover browsers that run on the Classic VM or require an implementation of the X11 windowing system.

What was not Tested?

I have not done quantitative testing on the time it takes to render pages, networking performance or the stability of the browsers. Network performance is hard to test reliably. Stability is also hard to quantify properly.

Lynx and Links work on an out-of-the-box installation of Mac OS X but are not included in the result table, which is GUI-oriented. Lynx 2.8.3rel.1doesn’t fully support any of the standards mentioned in the table. However, it supports HTML 4.01 very well except for tables and the title attribute. Links 0.96 does a good job with HTML 4.01 including tables. Emacs-W3 isn’t included in the table, either. Emacs-W3 is a browser that runs inside Emacs. However, it doesn’t display the page at all if it encounters Unicode characters it doesn’t like. (Please email me, if you know a way around this.) Links, Lynx and Emacs-W3 all support <link> navigation.

Mozilla is also available as a Mach-O version know as FizzillaMach. FizzillaMach isn’t yet the main Mozilla version for Mac OS X, and FizzillaMach is not included in the table at this time. There are three additional Gecko-based browsers that aren’t included. Phoenix for OS X is still very experimental. Beonex for OS X is also experimental and (on OS X) not as polished as Mozilla and Netscape. wKiosk is designed for kiosk use, so it doesn’t make sense to compare it with normal browsers.

The Results

Safari 1.0 Beta (v48) aka. 0.8 Chimera 0.6+ 2003010804 Mozilla trunk 2003010903 (FizzillaCFM) Netscape 7.01 Opera 6.0 Internet Explorer 5.2.2 (5010.1) iCab Pre2.8.2 OmniWeb 4.1.1
Standards support
HTML 4 (excluding BiDi, <col> and <link> navigation) Y* Y Y Y Y Y Y N
CSS1 Y* Y Y Y Y Y N N
CSS2 positioning Y Y Y Y Y Y N N
HTML <link> navigation N N Y N Y N Y N
XML parsing N Y Y Y Y Y N N
XML + CSS N Y Y Y Y N N N
XSLT N N Y Y N N N N
XHTML 1.0 sent as application/xhtml+xml N Y Y Y Y* N N N
XHTML 1.1 Ruby N N N N N N N N
MathML N N Y N N N N N
SVG inlined in XHTML N N N N N N N N
SVG in <object> N Y* Y* Y* Y* Y* Y* N
DOM Level 1 Core in HTML Y Y Y Y N Y N N
DOM Level 1 HTML Y Y Y Y N Y N N
DOM Level 1 Core in XML N Y Y Y N N N N
PNG (excluding 16 bits / channel, full alpha transparency and color correction) Y Y Y Y Y Y Y Y
PNG full alpha transparency Y Y Y Y Y Y Y Y
JPEG Y Y Y Y Y Y Y Y
Other page display-related features
Java applets Y N* Y Y N N N Y
GIF Y Y Y Y Y Y Y Y
Animated GIF Y Y Y Y Y Y Y Y
MNG N N Y Y N N N N
Core Graphics font anti-aliasing and metrics (without Silk) for MacRoman Y Y Y Y Y Y Y Y
Core Graphics font anti-aliasing and metrics for everything else Y N N N Y N N Y
Printing Y Y Y Y Y Y Y Y
Print preview with instant setting feedback N N N N N Y Y N
Can block onload JavaScript pop-ups Y Y Y Y Y N Y Y
Text input
Roman keyboard layouts Y Y Y Y Y Y Y Y
Central European keyboard layouts Y Y Y Y Y N N Y
Cyrillic keyboard layouts Y Y Y Y Y N N Y
Unicode keyboard layouts Y Y Y Y Y N N Y
CJK input methods Y Y Y Y Y Y Y Y
User interface
Aqua scrollbars Y Y Y N* Y Y Y Y
Aqua form widgets Y Y N N Y N N Y
Dialogs that should be window modal are sheets Y Y* Y Y Y N N Y
Draggable icon in the title bar N N N N Y Y N Y
Draggable icon in the location bar Y Y* Y Y Y Y N Y
Aqua context menu Y Y N N Y Y Y Y
Aqua menubar Y Y Y Y Y Y Y Y
Click&hold context menu N N Y Y Y Y Y Y
Icon&text toolbar mode N Y N N Y Y Y Y
Text only toolbar mode N Y N N Y Y Y Y
Icon only toolbar mode Y Y Y Y Y Y Y Y
Can hide / show all toolbars with one command / click N N Y Y N Y Y Y
Fully user-arrangeable toolbar buttons N Y N N N Y Y Y
Can enable/disable any toolbar button Y* Y N N N Y Y Y
Can enable/disable any toolbar Y Y Y Y Y Y Y Y
Can enable/disable status bar Y N Y Y Y Y N Y
URL autocomplete Y Y Y Y Y Y Y Y
Keyboard shortcut for selecting URL field Y Y Y Y Y Y Y Y
Drag&drop bookmark toolbar editing Y Y Y Y Y Y N Y
HTML quality indicator N N N N N N Y N
Traditional throbber N Y Y Y N Y Y N
Can enable / disable throbber / spinning petals N Y N N N N N Y
Title attribute in tooltip N Y Y Y N Y N N
Title attribute in status bar N N N N Y N Y N
Mouse cursor indicates title availability N N N N N N Y N
Can zoom text Y Y Y Y Y Y Y Y
Can be set to accept cookies but discard them after session N N* Y Y Y N Y Y
Link drag from page Y Y Y Y Y Y N Y
Text drag from page N Y Y Y N Y Y Y
Dragging image to Finder saves image Y Y N N Y Y Y Y
Form fields are text drop targets Y N N N N N Y N
Translucent drag&drop Y N N N Y Y N Y
Can drop URLs as text (from a text editor) onto browser window Y Y Y Y Y Y Y N
Live window resizing Y Y Y Y N Y N Y
Mouse wheel scrolling Y Y Y Y Y Y Y Y
Works as a single Finder item Y Y Y Y N Y Y Y
Can be set to always open new windows behind the current one N Y N N N N N Y
Has a modifier key for opening link in a window behind the current one Y Y N N Y Y Y Y
Can display more than one page in one window using tabs N Y Y Y Y N N N
Full screen mode N N N N Y N Y N
Can disable GIF animation N N* Y Y Y Y Y Y

Notes

  • HTML 4 support means support for features added since HTML 3.2.
  • OmniWeb makes an attempt to support some CSS1 properties. However, the result is not proper CSS1 support.
  • iCab also makes an attempt to support some CSS1 properties. However, in practice iCab tends to break CSS-based layouts.
  • Safari has overlapping issues with horizontal padding on inline boxes.
  • Safari doesn’t implement small-caps properly. It display them as all caps.
  • Safari uses black as the darker color for groove, ridge, inset and outset border styles instead of generating both the lighter and the darker color from the border color like Gecko and Opera.
  • Safari fails some CSS1 forward-compatible parsing tests. Not good!
  • DOM support indicates DOM support using ECMAScript. Even though Safari, Gecko-based browsers and IE have a “Y” in the table, they nonetheless fail some tests.
  • Sometimes loading XHTML stalls in Opera. Clicking the Stop button helps.
  • IE has some XML + CSS support. The display property can’t be set, however, making the feature mostly useless. (Everything appears as display: inline;.)
  • I haven’t yet thoroughly assessed the extent of XSLT support in Mozilla and Netscape.
  • ”Works as a single Finder item” means that the application Finder item (whether a bundle or not) works alone. iCab is not a bundle but the application file works alone. Opera is a bundle, but for example help files aren’t inside the bundle as they should be. Mozilla and Netscape are bundles but come with two extra files for invoking the profile mananger. However, these two extra files are necessary only during initial multiprofile setup, so in practice Mozilla and Netscape can be placed directly in the Applications folder as single double-clickable items.
  • Opera’s <link> navigation toolbar supports the basic link types such as back, forward and copyright. Links to sections and chapters are available only via the “Links” submenu of the “Navigation” menu.
  • SVG in <object> support requires Adobe SVG Viewer.
  • Mozilla and Netscape were tested with the Modern theme. Other themes can offer button modes that are not available in the Modern theme.
  • Some features are listed as “N” because by default there is no user interface for getting to the features. The toolbars of Mozilla, Opera and Netscape can be customized by editing the XML descriptions of the toolbars. In Mozilla and Netscape the toolbars can also be altered by applying another theme or by editing the “userChrome.css” file inside the user profile folder.
  • Safari pretends to support XHTML 1.0 sent as text/xml. However, it cheats and in a blatant violation of the XML well-formedness rules uses the tag soup parser! This is a very bad thing to do, because a failure to enforce the XML well-formedness rules could lead to XML degenerating into tag soup.
  • Safari doesn’t render the <legend> element of HTML 4.
  • In Chimera when multiple tabs are used, dialogs that would need to be modal to one tab aren’t sheets.
  • In Safari, some toolbar buttons are enabled/disabled as pairs.
  • Chimera loads Java applets, but keyboard input to applets is broken making applets of the more useful kind useless.
  • Opera doesn’t support letter-spacing.
  • Most Mozilla preferences also exist in Chimera and can be set using a text editor.

Quick High and Lowlights

Safari

Why

  • Looks and feels like an OS X app
  • Simple
  • Fast
  • Uses the Quartz font rasterizer throughout

Why not

  • Engine not up to Gecko’s capabilities
  • Too simple for some tastes
  • No tabbed browsing

Chimera (the author’s choice)

Why

  • Engine second only to the latest Mozilla
  • Looks and feels like an OS X app
  • Fast
  • Simple if you want to use it in a simple way. However, Mozilla’s preference repertoire is available via a text editor.
  • Tabbed browsing with native tabs that appear only when needed
  • Nightly builds are publicly available
  • Public, searchable bug database—can be used as documentation and you can track the issues that are important to you
  • Full source code available

Why not

  • Ugly rendering of Greek, Cyrillic and non-MacRoman Latin characters
  • QuickDraw rasterization of non-MacRoman

Note: The version of Flash Player that shipped with the OS crashes Chimera. A new fixed version of the plug-in is available.

Mozilla

Why

  • The most advanced engine
  • MathML
  • DOM inspector for people who need to analyze what is going on with the document tree and the styles
  • Nightly builds are publicly available
  • Public, searchable bug database—can be used as documentation and you can track the issues that are important to you
  • Full source code available

Why not

  • Clunky non-native user interface
  • Toolbar icons remind of Netscape 4.x (can be alleviated with themes)
  • Mail&News and IRC components entangled in the same process and behind the same Dock icon with the browser
  • QuickDraw rasterization of non-MacRoman

Netscape

Why

  • Engine second only to the latest Mozilla
  • Netscape brand value
  • Mozilla 1.0 branch quality assurance

Why not

  • Doesn’t look and feel like a Mac OS X app (can be alleviated to some extent—but not fully—with themes)
  • Mail&News and Instant Messenger components entangled in the same process and behind the same Dock icon with the browser
  • Opening a new window is slow
  • Ugly rendering of Greek, Cyrillic and non-MacRoman Latin characters
  • QuickDraw rasterization of non-MacRoman

Opera

Why

  • Easy to deal with Web annoyances using the user style sheet mode toggle and Quick Preferences
  • Uses Quartz font rasterization throughout
  • Indic script support

Why not

  • Advertisement in the UI / price
  • Engine not up to Gecko’s capabilities
  • Can’t modify document tree via the DOM (coming up in Opera 7)
  • Cluttered UI by default (can be cleaned up)
  • Tabbed browsing either on or off—tabs don’t appear on demand

Internet Explorer

Why

  • Page holder helps with going through link lists
  • Scrapbook is useful for storing local copies of pages
  • Auction addicts might find the auction manager useful

Why not

  • Engine not up to Gecko’s capabilities
  • Doesn’t quite look and feel like an OS X app
  • No pop-up blocker
  • Rather useless for people who need more than MacRoman and CJK support
  • No tabbed browsing
  • Not up to Safari’s and Chimera’s speed
  • Becomes unresponsive with multi-window browsing style

iCab

Why

  • Built-in HTML linter

Why not

  • CSS support badly broken
  • Doesn’t support UTF-8
  • Doesn’t look and feel like an OS X app
  • No tabbed browsing

OmniWeb

Why

  • Uses Quartz font rasterization throughout (but so do Opera and Safari)
  • Can check the bookmark list for “dead” bookmarks

Why not

  • Doesn’t support HTML 4 and CSS1!
  • Can’t drop URLs from text editors onto the browser window!
  • No tabbed browsing
  • Price / nag screens

Screenshots

These screenshots show each browser rendering the famous Box Acid Test.

What About Banking?

SSL/TLS isn’t included in the table, because I don’t have reliable test cases with specific SSL/TLS versions. So far, I have only conducted an ad hoc test: I have tested the browsers with the Solo service of Nordea’s Finnish branch.

All the eight GUI browsers worked. The SSL-enabled versions of Links and Lynx worked, too.

If they don’t work with your bank, chances are that the bank is to blame—not the browser. Some banks have been reported to block browsers that they don’t recognize. Other banks have been reported to block some browsers, because they think the browsers might allow the user to store the login password on the computer. (Banks that use a one-time pad of passwords like some [all?] Finnish banks are not affected.) Also, your bank might be using JavaScript needlessly in an incompatible way.

To Do

  • 16 bits/channel PNG testing
  • Dividing CSS2 into reasonable subcategories and testing
  • Character display and encoding test results
  • Testing DOM Level 2 support
  • Better XSLT testing
  • Better SSL/TLS testing
  • Feature table for text-based browsers (Links, Lynx and Emacs-W3)

Test Suites