
Tired of Safari - robin_reala
http://www.quirksmode.org/blog/archives/2015/02/tired_of_safari.html
======
bonn1
It's obvious that Apple slowed down innovating the web since the core of their
business is iOS and apps. They shouldn't have any interest in a fast
innovating web that gets on par with native apps which is their main lock-in
for iOS, just like Microsoft 15 years ago. They only speed up their rendering
engine and JS core but don't try to help on standards improving the web
experience.

BUT: I doubt this pointer event thing is a good example for their reluctance
because it's really just a nice-to-have feature for the Surface and the Note
series which is for my taste a too small target to justify a standard.

A good example for Apple reluctance to innovate the web is CSS Flexbox. CSS
Flexbox is the best positioning standard I encountered, every vendor supports
it, only Apple still prefixes it with -webkit.

Another example is their reluctance to make WKWebview fully workable, since
months there is still a bug which prevents WKWebview loading local files, the
bug was already fixed in an early beta of iOS 8 but then they put it again in.
WKWebKit is way more performant than UIWebview and can produce butter smooth
HTML5 apps with Cordova/Phonegap but this one bug makes it hard (people
already build local web servers to work around this problem).

EDIT/ADDITION: A third and probably the most obvious indication that Apple
doesn't want innovation in the browser space is their ban on 3rd party
browsers on iOS. Benjaminjackman articulated this well in this thread below:
"And yet here we are 15 years later and the iOS platform is doing just that,
Apple is embracing this Microsoft strategy and extending it to a whole new
level by flat out banning 3rd party browsers and so we all run the risk of
having this great renaissance in browser application innovation extinguished
into a second dark age."

~~~
matthewmacleod
_It 's obvious that Apple slowed down innovating the web since the core of
their business is iOS and apps_

No, it's not at all obvious, and the objections you've raised do not support
your view at all.

 _CSS Flexbox is the best positioning standard I encountered, every vendor
supports it, only Apple still prefixes it with -webkit_

That's a really pedantic objection — prefixing CSS standards which _aren 't
actually finished_ is exactly what prefixing is for. It's hardly an anti-web
move to keep it prefixed, and anybody who wants to use it can already do so
with minimal additional effort.

 _Another example is their reluctance to make WKWebview fully workable_

I find that argument very suspect, since Apple could easily just _not have
released WKWebView in the first place_ if they wanted to prevent it's use.

~~~
bonn1
> ... the objections you've raised do not support your view at all.

No reason to get emotional.

> That's a really pedantic objection —

Pedantic? Positioning elements is the most important feature of a layout
system and CSS is totally broken in this regards, just try to vertical center
something. Flexbox is godsend and finalized—every vendor removed the prefix.
Wondering who is pedantic.

> Apple could easily just not have released WKWebView

The pressure they got for five years that they offer just the 10x slower
UIWebview and give Safari the WKWebkit was the main reason and maybe they just
released WKWebview to make the impression that they play along. This one bug
makes WKWebview utterly useless.

However, would love to keep the tone in this discussion on a friendly level.

~~~
experimental-
Vertical centering has been relatively easy since CSS 2.1 (Table model);
flexbox of course offers much more than that. Flexbox may be finalized and
unchangeable, if only because so many browsers already support it unprefixed
(as support for such properties is almost never removed) – however, like much
of the CSS3, flexible box model is not yet a W3C Recommendation, and is, in
theory at least, subject to change. With proper tools, a prefix here and there
is not a huge burden.

The reason why many browsers rush to unprefix CSS3 is not that it's perfect,
but because of the lazy web developers who only prefix stuff for WebKit. This
may or may not bite the community in the future.

~~~
bonn1
> Vertical centering has been relatively easy since CSS 2.1 (Table model)

But not with divs which are more common

~~~
pcwalton
It's not hard, really: just use absolute centering [1]. That's actually what
"margin: auto" is there for in CSS 2.1; it's a shame they were bad at
evangelizing it.

[1]:
[http://codepen.io/shshaw/full/gEiDt](http://codepen.io/shshaw/full/gEiDt)

------
lars
Repeating what I said in previous thread: There are real problems with the
Touch Events spec, and we need a replacement. One issue is that it is under
specified w.r.t its compatibility with mouse events. A concrete example:
Should the touchmove event trigger the mousemove event? I believe it does in
IE and Firefox, while it does not in Chrome and Safari. This isn't specified
anywhere, and can make it incredibly complex to implement something that works
with both mouse and touch input. And it is exactly this type of thing that
Pointer Events sets out to fix.

This is exactly the same story as with the <meta name="viewport"> tag. Apple
did something without releasing a spec, and the others made not-fully
compatible copies. That was 8 years ago. No exaggeration: Right now the
only(!) thing that works consistently cross platform is setting width=device-
width. It is insane, and it hurts the web.

~~~
TazeTSchnitzel
For whatever reason, despite all the standardisation out there, DOM input
always has been this massive cross-browser incompatible inconsistent
proprietary clusterfuck. quirksmode.org may be known to some of you as this
guy's blog, but it is best known for its DOM event compatibility tables, which
somehow still matter in 2015.

If browser vendors cannot fix mouse and keyboard, why would they fix touch?

~~~
gsnedders
A lot of time has been sunk into trying to fix keyboard especially, but it's a
horrible, horrible mess — pretty much whatever you do will break websites,
given so many do if (UAx) expect_behaviour_x() else if (UAy)
expect_behaviour_y() etc., so even standardising on existing behaviour doesn't
work. Then there's fact that some of it is down to locales and what the
current keymap is… :(

------
streptomycin
Another example: they ignored IndexedDB for a couple years after every other
major browser implemented it. Then they finally got around to releasing a
version of Safari with IndexedDB support... and it's just hilariously broken
in so many ways [http://www.raymondcamden.com/2014/09/25/IndexedDB-on-
iOS-8-B...](http://www.raymondcamden.com/2014/09/25/IndexedDB-on-iOS-8-Broken-
Bad)

I literally cannot fathom how such a horribly buggy release could be made in
good faith. It's like nobody even tried to test it or use it before releasing
it.

So, conspiracy theory time: They're doing all this to cripple web apps and
force people to write native apps. This conspiracy theory also fits in nicely
with how they won't let you run other web browsers on iOS, which would make
the deficiencies of Safari somewhat less problematic.

~~~
TazeTSchnitzel
It came late and it was buggy.

That rarely means malice. That usually means overstretched engineers.

~~~
streptomycin
It came years late and was laughably buggy. And 6 months later it's still
laughably buggy.

There are plenty of pre-written tests used by the other browser vendors that
would have shown them it's shit before they released it. Or they could have
just tried using some websites that use IndexedDB and noticed that basically
all of them broke in their browser.

That means malice, horrible incompetence, or horrible management. I doubt it's
incompetence. It could be horrible management. But it's just so bad that you
can't help but think about malice...

------
0x0
(Mobile) Safari is well under way to become the new IE6, especially for older
iOS devices that do not receive further updates. :(

~~~
TazeTSchnitzel
"New IE6"? It gets new features.

~~~
FreakyT
As that comment pointed out, once Apple decides that your device is
"obsolete", it stops getting updates, so there are plenty of still-used iOS
devices that will never have their Webkit versions updated.

Personally, I suspect this lack of updates has less to do with _actual_
obsoleteness and more to do with ensuring that you always buy the latest
device. (Note that this _isn 't a problem unique to Apple_ \-- many companies,
including many Android OEMs, are even _worse_ about it. I honestly feel like
it should be illegal to sell hardware and never update it, but I'm really not
sure how something like that could be enforced.)

~~~
yoz-y
This can be turned around and say that it is actually the progress of the web
which is obsoleting the devices. Device manufacturers can not update the
devices forever, although they could keep them updated a while longer.

~~~
smackfu
I can run modern Chrome on Windows XP despite Microsoft dropping support for
that OS. I can't do the same for iOS 7. I can't even install a third-party
browser engine due to Apple's rules (only a skin over WebKit is allowed.)

------
munsoji
As a developer who spent the last few months trying to get a website with
touch events to work on the surface 3, I need to get this off my chest.

Microsoft, make up your mind. Do you want a browser that websites 'just work'
in or do you want to keep implementing broken standards and forcing other
browsers to adopt them? Pick one and don't try to find some weird middle
ground where you implement webkit touch events on ie11 mobile but not desktop
even though you want us to treat them as the same browser. I'm also looking at
you, pointermove events that don't ever give you x and y values other than 0.
You tell us you want us to do feature detection instead of browser detection,
but how am I supposed to do that when window.pointerEnabled is true for all
instances of ie11 even though I don't want to register touch events when I
know the user is using a mouse? Before you respond with "you should just be
listening for pointer events and not worry about type", you've just asked me
to make my site incompatible with every other browser on the market instead of
making it slower on ie11 by registering lots of unnecessary event listeners.

Microsoft, it's over. I'm moving on, and don't try to pretend like you can
change with project spartan.

~~~
JoeAltmaier
A bug, and an extra event listener? That's enough to drive you mad? Sorry,
that seems pretty mild. I understand getting wound up after spending too much
time figuring out an issue. Maybe walk away from it for an hour, get a cup of
something, vent on HN. Oh! That's what you're doing.

~~~
taf2
Here's the thing this is just one example of one issue of thousands. And at
the end of the day the difference is with Mozilla and Chromium I can jump on
irc and talk directly to the people working on those browsers and get their
advice for the best way to work around a current issue. I can get insight into
whether a fix is in progress and I can vent my frustrations. I can also rest
easy knowing that in 1-3 months a fix is likely to arrive... For IE this is
all none- existent. The original comment is spot on IMO about the state of
Microsoft and IE. Safari, has it's issues and I wish Apple would innovate
faster but at least the core of Safari is open via Webkit and similar to
Mozilla and Chromium I have someone to reach out to... I have nothing from
MS/IE - I don't even target that browser anymore. If a customer complains
about the site not working - it means either.

a. they're on Window XP and no worth the trouble.

b. they just need to open chrome.

And yes - this is a much better web than we had with MS/IE

~~~
cssmoo
Have you ever raised a support case with MS properly I.e. Not via
feedback/connect?

Your can speak to someone who knows their shit pretty sharpish and get a fix
to you. Most of the time this is same day stuff.

As for Chrome, the open web is much better now we have NaCl, sign in nagging
and dubious privacy and no support even if you're a paying customer (google
apps I'm looking at you).

~~~
taf2
I think conflating privacy with quality/security is a bad idea... especially
if you're trying to say MS is better a customer privacy than Google...
[http://rt.com/usa/yahoo-microsoft-campaign-
political-862/](http://rt.com/usa/yahoo-microsoft-campaign-political-862/) \-
just saying...

------
yoz-y
Judging from the comment thread on the Chromium tracker issue it does not look
like people over at Google are any more eager to implement this than Apple is.

------
jcampbell1
IIRC, pointer events require an huge amount of hit testing, and don't deal
with bypassing the CPU to do smooth scrolling. Pointer events are a good
solution for the future, but I understand why Google and Apple aren't pushing
it, as they make phones where performance is more critical.

------
bluerobotcat
Meanwhile Chrome and IE still don't support MathML. Now _that_ is annoying.

~~~
QuantumRoar
Is MathML actually widely used? I can't believe anyone would really want to
use something else than the LaTeX stuff for typesetting formulas. There's
nothing as pretty as LaTeX for that.

Recently I wrote a small tool that enables me to write LaTeX code directly in
HTML and the tool then renders the LaTeX code in PDF, converts it to SVG and
places an appropriate img-tag with the reference to the generated SVG. I was
under the assumption that most people do it kind of that way.

Or let me ask another way: Is there a reason to prefer MathML over using SVGs
created with the LaTeX rendering engine?

~~~
bzbarsky
Some reasons to prefer MathML:

1) Working find-in-page that lets you search equations too.

2) Ability to select, copy, paste the math bits.

3) Better accessibility. LaTeX in alt text is something, but actual semantic
markup would allow the UA to present things to the user the way the user wants
more easily (e.g. without having to re-parse the LaTeX).

4) Ease of editing and reuse (c.f. view source).

5) Ease of styling (e.g. you can use colors to highlight parts of an equation
as needed and change it dynamically; some teaching sites put this to very good
use).

Note that there do exist LaTeX to MathML converters, so you can still author
in LaTeX if you want and export to MathML.

~~~
QuantumRoar
Thank you for the explanation!

------
thrillgore
And Google has now closed discussion on the issue tracker, as linked to by
PPK.
[https://code.google.com/p/chromium/issues/detail?id=162757](https://code.google.com/p/chromium/issues/detail?id=162757)

It got salty but not to the extent that merited this being closed. It looks
like this will remain closed and wontfix for the immediate time being.

------
ebbv
I was really on board with this article until I got to this:

> Although he is right in a literal sense, I do not think we should exaggerate
> the problem. Clueless web devs will be clueless (and they’re mostly blinded
> by iFever anyway)

So the author is saying that most clueless devs are rabid Apple fans? This is
so ridiculous to the point of doing nothing but making the author look bad.

Yes, Apple is behaving badly with regards to this spec. All large companies
have behaved badly with regard to Open Web Standards at one point or another.
Let's pressure Apple to get on board with the Open Standard just like we have
to pressure all other companies who are on the wrong side of this battle. It's
not the first time it won't be the last time.

Taking it personally is not productive.

~~~
riquito
You missed the context

> creating a second bunch of events to do essentially the same as touch events
> would put undue pressure on web developers, since they would now have to
> code to two standards

He's talking about the fact that the devs that have problems with this are
"clueless" and will be saved by someone else that does the hard part for them
(write a unified interface)

~~~
ebbv
I did not miss the context. I read the article. I was not objecting to his
characterization of devs being clueless. There are lots of clueless devs in
the world. In my experience it's >50% of devs.

What I objected to was the absurd claim that "most" clueless devs have
"iFrenzy." When obviously in reality, there's clueless Apple fans and clueless
Apple haters and clueless everyone in-between.

Making such a, frankly, stupid assertion undermined the entirety of his post.

------
euroclydon
Desktop Safari sucks too.

It has good battery life on a Mac, but tends to crash frequently for me.

The thing I hate the most though is this: On the favorites bar, click a folder
to drop it down, now click another folder while the first is still dropped
down -- nothing! I'm not even asking to be able to drag my pointer to the next
folder and have it expand, but that would be even better.

~~~
legulere
In fullscreen mode drag a tab somewhere so that a new window gets created.
This new window will have some vertical offset broken and can't be fixed by
anything you do (black stripe on the bottom in fullscreen mode, lots of
strange behaviour)

------
eridius
Comments like

> _(and they’re mostly blinded by iFever anyway)_

do nothing but make the author look bad and make many readers (such as myself)
inclined to discount the entire piece. It's really disappointing to see
something like this in an article that otherwise has a legitimate point.

------
dimillian
If only there was a better/faster mobile browser than Safari. The fact is
there isn't, true, Google is not allowed to have its own version of
Webkit/blink on iOS, but is Chrome Android better/as reliable as Safari?

~~~
Mahn
> but is Chrome Android better/as reliable as Safari?

Absolutely, not sure what would make you think otherwise. Older versions (a
year or two ago) used to have some minor inconveniences ocasionally, such as
scrolling lag after using it for a while, but that was ironed out long ago.
Chrome for Android is my main mobile browser and by and large the "app" I
spend the most time with while on the go, and currently I have zero complains.
It's fast, it's responsive and it gets the job done without getting on the
way.

------
pornel
To me more worrying is Apple's complete silence on Service Worker:
[https://jakearchibald.github.io/isserviceworkerready/](https://jakearchibald.github.io/isserviceworkerready/)

I agree with sentiment of the article, but I don't care about PointerEvents in
particular. Good UI needs to have separate code paths for touch and mouse
anyway, e.g. swiping with a mouse feels stupid.

For trivial stuff TouchEvents already simulate mouse events and every new
technology will — these events are our common compatibility layer already.

TouchEvents are a bit of a mess, but it's fixable and it's being worked on,
e.g. standardising simulated mouse events, removing click delay, adding
ability to prevent scroll from any touchmove event.

TouchEvents even sometimes nicer to work with, e.g. touchend will be fired on
the same element that received touchstart (there are edge cases in there, but
I've never ran into them), while this is not guaranteed with pointerup, so
it's easy to write bad code that causes dragged elements become "sticky".

~~~
gsnedders
Apple are frequently silent on things until they start to implement them. They
almost never promise to implement things until they are almost done.

------
the_gipsy
Also, apple only allows using the UIWebView, so Chrome for iOS is just
safari's engine with a better interface:
[https://developer.chrome.com/multidevice/ios/overview](https://developer.chrome.com/multidevice/ios/overview)
And in previous iOS releases, the UIWebView had a significantly worse
performance than safari:
[http://daringfireball.net/2011/03/nitro_ios_43](http://daringfireball.net/2011/03/nitro_ios_43)

Both cases are explained as security measures. But they are coincidentally
degrading web applications' performance, which benefits Apple's app store
revenue.

~~~
TazeTSchnitzel
iOS added WKWebView.

~~~
dimillian
WKWebview is good for a very simple in app link opener, if you want to do a
full featured browser around it (Chrome iOS), the public API is nowhere near
ready for that.

------
vardump
Tired of Safari, but for different reasons. Mobile Safari is probably the
biggest reason I don't want to use iPad or iPhone. No reflow of text after
zoom, and I don't want to move back and forth right and left to read larger
size text. Very useful when reading while walking or when website text is just
too small. Reading list doesn't replace good zoom text reflow.

I have an iPhone, but I use it so rarely it's sometimes out of battery for
weeks. I guess it's too "one size fits all" device to me. Some things are
deceptively nice in it, it's smooth... but it doesn't respect my wishes.

Using Opera on Android instead. Perfect mobile browser for a mobile phone
after enabling flow option in the settings (Text wrap).

Another app I couldn't live without is f.lux or equivalent. I wish iOS could
have it without jailbreak.

------
bsimpson
I understand the frustration behind Google abandoning Pointer Events, but they
have good reasons for doing so. For years, one of the bars to get a new
feature added to Chrome has been "Does this increase or maintain performance?"
For Pointer Events, they determined the answer was "no" because of the extra
hit testing it requires, and they refuse to regress performance on the web.

My primary input device has been a stylus for over a decade, so I'd love to
see unified input support on the web, but with all the talk of getting to 60
FPS, I can understand why a spec that contradicts that isn't being
implemented.

[https://code.google.com/p/chromium/issues/detail?id=162757#c...](https://code.google.com/p/chromium/issues/detail?id=162757#c64)

------
emehrkay
Interesting twist in this article. I've seen a lot of praise for his writing
style (inverted pyramid) on HN, but that Google portion came out of nowhere.
He is understandably upset that Apple is slowing down progress, but doesn't
seem as upset that Google is doing the same thing.

------
madsravn
On the subject of things I'm tired about. That website uses 448 px for the
main content. For me that is 448 px of 1905 px. That's not even a quarter of
my screen. Why in the world would you do something like this?

~~~
ickwabe
A few arguments:

[http://www.humanfactors.com/newsletters/optimal_line_length....](http://www.humanfactors.com/newsletters/optimal_line_length.asp)

[http://www.ninjapost.com/blog/on-the-importance-of-narrow-
co...](http://www.ninjapost.com/blog/on-the-importance-of-narrow-columns/)

[http://socialtriggers.com/perfect-content-
width/](http://socialtriggers.com/perfect-content-width/)

------
eridal

      If you want to help, please star _this_ issue in the Chromium bug tracker and make some noise
    

* [https://code.google.com/p/chromium/issues/detail?id=162757](https://code.google.com/p/chromium/issues/detail?id=162757)

------
tuananh
> Sponsored by IE.

Just saying.

~~~
panzi
While their browser really is subpar, Microsoft did contribute some important
technologies to the web. E.g. AJAX (XMLHttpRequest) and (the precursor to)
HTML5 Drag and Drop.

~~~
bsimpson
If AJAX was any good, we wouldn't need the Fetch API. It was only embraced
because the web had literally no was to programaticly download assets before
that.

~~~
panzi
"It was only embraced because the web had literally no was to programaticly
download assets before that."

Exactly. The version of the DnD API implemented by Microsoft for the most part
wasn't that great either (did Microsoft catch up with what other browser
vendors provide these days yet?). But at least they did something and they let
it be standardized without any patent claims. We had these problems and
Microsoft came up with solutions. Of course you want to use XMLHttpRequest2 or
WebSockets and you want to use the dataTransfer object with mime types and the
FileReader API. But Microsoft at least initiated that development.

Now that almost sounds like I'm a Microsoft fan boy. I'm not. I use Linux.
Couldn't stand to use Windows. But I think one should give credit where credit
is due.

