top | item 29170146

Safari Ruined My Tuesday

144 points| colinarms | 4 years ago |fly.io

134 comments

order

klodolph|4 years ago

> It's like living with IE6 again

There is a CSS bug.

CSS bugs are dirt common. It's a miracle that there are as few CSS bugs as there are. However, I remember IE6. IE6 was a total fucking mess. Everything was broken on IE6. It wasn't just a bug, it was a complete support nightmare.

I routinely encounter problems with CSS that reveal maddening differences between Chrome, Firefox, and Safari. That's just for desktop. But it's still way better than dealing with IE6.

Turing_Machine|4 years ago

> However, I remember IE6. IE6 was a total fucking mess. Everything was broken on IE6. It wasn't just a bug, it was a complete support nightmare.

Indeed. While Safari does have its problems, it is a long, long way from being as bad as IE used to be. I recall one project where making it work on IE required that about 30% of the code be rewritten.

chrismorgan|4 years ago

Most CSS bugs just make things a bit uglier, rather than completely breaking your entire site.

frou_dh|4 years ago

Most Safari comment threads have people looking for an excuse to use the phrase "The new IE" as if it's a zinger they came up with.

tomxor|4 years ago

Safari regresses more commonly, and those regressions are often more fundamental vs edge cases, and then they take ages to fix. Sometimes they don't even bother until the next major release which is maddening... Anyone remember how they completely broke iframe sizing on iOS some version or other back and then just left it there?

We were pretty much stuffed due to depending on iframes. Some users are stuck on that version of iOS because their device is "too old" for Apple's liking and we have to tell those users we can't support it, which is horrible because we are effectively being used by Apple to coerce those users to throw their devices away...

Vinnl|4 years ago

Heh, reading the title I thought this was going to be someone losing all their tabs because "clear history" on mobile Safari apparently does that: https://twitter.com/SaraSoueidan/status/1457307545815732233

> Oh dear God.. Clearing history on Safari iOS closes all currently-opened tabs?! Why is there nothing that warns you of that?! Why does clearing history on mobile work differently from the way it does on mac? I had 60+ important tabs open and now they're gone!!

> I had so many notes, bookmarks, and links I needed to use in my course + so many pages unrelated to work, all open for later reference. And no I don't have a backup to restore from. What the heck, Apple?!

m_st|4 years ago

I was struck by that too. Don't know why or how or with which action, but lost all my opened tabs on my iPhone a few weeks ago.

Luckily it was really just work "in progress", but never the less I've lost information. Which shouldn't happen in 2021.

Someone|4 years ago

Tried that. Cannot reproduce (iOS 15.1; iPhone and iPad).

I have seen iOS on iPad suddenly start with a set of tabs from some time ago, though, and that can look identical to “losing all tabs”. Can’t repro that either, but it seems to happen after one runs multiple Safari’s side by side and then went back to full-screen (if you do that, multiple Safari’s show up in the Task Switcher)

Either way I think this is a bug, not by design.

chrisseaton|4 years ago

> I had 60+ important tabs open and now they're gone!!

This just doesn't seem a reasonable expectation that these are preserved - they would also be lost if the computer crashed wouldn't they?

If it's important then save it.

tediousdemise|4 years ago

It boggles my mind that people use tabs like bookmarks. Not only does this usually destroy your available RAM, but its just not the right tool for the job. You are using a hammer like a screwdriver.

To each their own, I guess. Just don't get mad when your browser crashes from overloading with tabs, or when you clear your history and it triggers the expected behavior of closing them. It would be a huge privacy concern if your open tabs didn't close when you clear the browser history.

wffurr|4 years ago

Part of the problem is the very slow release cadence of Safari. Features are tied to annual OS releases, bug fixes seem to often not meet the bar for incremental updates, which have no discernable schedule.

roydivision|4 years ago

This here is for me one of the biggest problems with Apple. I imagine this sort of eye of Sauron inside the company, whatever the eye rests on gets attention, anything else takes a back seat. They don’t seem to be able to multitask.

There are severe bugs in iOS Mail app for instance that have been there for years, through major iOS versions. How difficult would it be to have a team dedicated to fixing bugs outside the release cycle? It would provide a great environment for up and coming developers. And I can’t help thinking that fixing these paper cut issues would gain Apple respect, maybe not from the average user, but certainly from the sort of user that notices those details.

And perhaps also an easier way of raising bugs…

philo23|4 years ago

I think Safari is now the only big non-evergreen browser remaining out there, and I think it's really holding it back. On both security fixes and features.

I hope some point in the future Apple untie Safari from macOS and iOS so they can be updated independently without having to wait months to operating system updates to come out..

whywhywhywhy|4 years ago

Honestly just isn't in their interest to do so anymore, and that's messed up.

syspec|4 years ago

I encounter random CSS bugs all the time in Chrome, it's just trendy to say Safari is behind the times.

Google wants everything to be done in the browser, their browser, so they can track everything without cookies to sell ads

Benjamin_Dobell|4 years ago

It's really not just "trendy". Safari is the bane of my existence. On Big Sur, our WebGL app was occassionally sporadically rendering floating objects and black primitives into infinity on our CEOs laptop.

On the plus side, our competitor's product didn't work at all. So I guess it's not all bad.

In this case, Catalina had worked fine, and upgrading to Monterey fixed the issue. So props to Apple for fixing the problem. However, at the same time, our app worked flawlessly in both Firefox and Chrome running on the same hardware. Granted, it's not as simple as pointing the finger at Safari. The issue was a combination of Safari's behaviour paired with less than perfect graphics drivers.

Although, this is just one example. Mobile Safari not supporting full screen APIs on iPhone, but supporting them on iPad is just, well, weird. Is that a conscious effort to cripple the web on iPhone, or could they just not figure out the UX?

jabbany|4 years ago

There's nothing wrong with the browser being the next generation cross-platform execution environment. All the older options for this (Java, Flash etc.) sucked...

I would like to see a strong competitor to Chrome someday though... - Firefox still has weird issues occasionally (most recently scroll position randomly jumping sometimes). I still keep it around though because its sane when it comes to standards and will remain sane even if things like HW acceleration are not available. - Safari is out of the question as it is not even cross-platform (might as well be IE6) - Chromium and derivatives aren't distinct enough from Chrome and a lot of the new ones have weird cryptocurrency integrations that just don't feel right. - Is Opera still alive?

userbinator|4 years ago

Except when it's Chrome, it's probably a feature and not a bug. Remember that Google effectively controls the web "standards".

djbusby|4 years ago

I want everything in the browser too - except the ads.

And FF isn't keeping up :( WebUSB for example.

mdoms|4 years ago

Oh yes it's trendy to criticize Apple but it's not trendy to criticize Google.

Honestly I don't know the reality some HN commenters live in.

tgv|4 years ago

Chrome fucked up one of my days, because it suddenly changed the way updating a video element's source worked. On Android 11, and not even all platforms, by the looks of the log files. So, you hack around it, deploy, shrug, and add a notch to your eternally flaming hatred for everything the internet has become.

cdrini|4 years ago

Yikes, that's an awful bug. I make heavy use of pointer-events none. And I've _already_ had to have a special case for Safari, because it didn't seem to support setting `pointer-events: all` on SVG tspan elements. Now I have to double check to see if/what is broken in Safari 15 :(

fouc|4 years ago

My general recommendation is to make Safari your main browser for development work. Check your work in Firefox later. By that point it should be good.

If any weirdness shows up in Chrome, you'll just end up comparing it to IE6.

jabbany|4 years ago

A recommendation predicated with "Get a Mac first for development work"?

Last I checked Safari unlike Firefox and Chrome is not cross platform.

Small aside: Webkit browsers used to have problems with CSS (especially things involving 3d) when hardware acceleration is unavailable. Spent so many hours back in the day debugging why certain CSS effects did not work. Switched to Firefox and worked like a charm... Only really understood the problem when I eventually switched to a system with HW acceleration support.

wnevets|4 years ago

>My general recommendation is to make Safari your main browser for development work.

How do you that if you don't own a mac?

innocenat|4 years ago

As other have said, the problem is that Safari is only available on Mac OS.

Say what you will about IE, at least Microsoft make an attempt to make it available to everyone (via free Windows VM preloaded with specific IE version).

RobertRoberts|4 years ago

A more reasonable approach is to code to standards then do these things:

1. Tell customers it will cost x more money to fix bugs on Safari (likely zero will pay this premium)

2. Put a notice or banner for Safari users that they are using a non standards compliant browser and they may see minor or major issues and maybe should use Firefox or Chrome.

3. Educate customers on standards and show them alternatives so they can do the same for their customers.

4. Record actual brower useage data and demonstrate the low count of actual Safari visitors and star back at #1 above with this newly applied info.

blondin|4 years ago

i sympathize with the author.

safari and browsers aside, there is something bigger going on. there is a massive disconnect between applications users and makers nowadays. i have started to think that they a) don't care b) have misaligned priorities c) have weird notions of "acceptable" errors.

i have a long list of applications that break every time there is an update. even UX updates introduce bugs nowadays. i have started to dread updates and upgrades.

we have lost all notion of stability.

FpUser|4 years ago

"...i have a long list of applications that break every time there is an update..."

Updates to Wordpress / WooCommerce and accompanying plugins can make one go suicidal.

Mikeb85|4 years ago

Why should any developer care about supporting Safari? Chrome and Firefox support most (all?) of the current web standards. Every site I use works on both. I don't hear any concerns about Brave, Edge or Opera either. How is it that Safari is the only broken browser these days?

As for 'acceptable' errors, I find software to be pretty reliable these days. I remember way more things being messed up back in the day...

ncake|4 years ago

In my brief experience in front-end, I've encountered weird Safari bugs on every single project.

In one case the code failed because the form object there doesn't implement the method to validate and submit. In another, it wasn't sending a form field if it was styled with "display: none;" (had to change to "left: -9999px;"). In another, playing a non-muted video would error out some of the time, if clicking an element wasn't recognized as a user event. In yet another, the mobile version refused to center text inside <button> no matter what. And so on.

Ciantic|4 years ago

> CSS includes a handy pointer-events attribute that makes buttons and links flip to non-interactive

Except that it doesn't, you can still focus those with keyboard and click them. You should always disable buttons with `disabled` property instead of that hack.

chrismccord|4 years ago

In this case, the rule is for all interactive elements. It's not just buttons, but anchor tags as well (or any other element a user decides to put a `phx-click` and friends on. Phoenix LiveView internally already noops if it's not connected, but we used the css rule so the cursor pointer would not reflect an interactive element while in a loading state.

concinds|4 years ago

It's quite interesting to read the history of how Blink came to be[0]. Seems like it started on what amounts to a misunderstanding. And now, because of it, Safari's fallen hopelessly behind in web standards support, security, and even resource use (see RAM use in Safari vs Chrome with many tabs open, Safari uses 1.5x-2x more RAM). Apple's big weakness is that it has laser focus on a few cash cows, and lets everything else linger; the quality of Chrome developer relations, carefulness to not break things in updates (see Safari & IndexDB), huge resources invested in Chrome security, and focus on features and power users (tab list in the menu bar! tab search that doesn't take seconds to load on x86! better UI! tabs on top! multiple profile support! ability to open local HTML files without going into the Develop menu!). Why can't Apple just care to make a good browser?

Does anyone have any insights into how the Safari team functions at Apple, and why they're not catching up?

[0]: https://news.ycombinator.com/item?id=5489641

michaelbuckbee|4 years ago

I had the weird experience of someone reporting that a SSL issue was occurring in Safari but not with Chrome.

After a bunch of investigation and rabbit holes it turned out that it was an app issue where the "_" character wasn't being filtered from sub-domains.

https://my_name.domain.com -> works in Chrome, not in Safari

This is interesting to me as Safari is _correct_ in their implementation (that the underscore character isn't valid in domains), but again an instance of FF+Chrome working where Safari doesn't.

rsynnott|4 years ago

> This is interesting to me as Safari is _correct_ in their implementation (that the underscore character isn't valid in domains), but again an instance of FF+Chrome working where Safari doesn't

It's IE/Netscape all over again; a big driver of bugs back in the day was the one of them (usually but not always IE) was overly tolerant of some sort of bad behaviour).

MisterSandman|4 years ago

I didn't even have to open the article to know it's a CSS bug.

Matthias1|4 years ago

When you're doing cross-platform development like this for the web, you're going to have a "least common denominator" that you have to design for. Safari is that least common denominator right now only because Microsoft switched to using Chromium. But if Apple switched Safari to use Chromium, then Firefox would be the least common denominator and supporting Firefox would suddenly seem like a burden.

It's fine to criticize Safari and encourage Apple to do better in the space, since Apple isn't super incentivized to improve Safari. But this narrative that always targets the browser with the smallest feature-set at any given time will only stop when all browsers are Chromium based. (At which point they'll start complaining about other browsers using a Chromium version that's slightly behind Chrome.)

jakub_g|4 years ago

Firefox releases every 4 weeks. Safari releases twice a year. That's a significant difference. We should all expect more from a $2.5T company (whose browser engine is the only allowed browser engine on iOS).

To clarify: it's not an attack on developers of Safari. The point is that Apple is severely underinvesting while at the same time blocking competition.

baggy_trough|4 years ago

The * in that css rule is pretty painful.

merrywhether|4 years ago

I guess moving all your logic to the server means you can waste cycles in the CSSOM? /s

I’m curious if more explicit selectors would’ve fixed this, since the * exposes you to anything weird about your layout.

tofukid|4 years ago

Here’s my latest browser issue that drove me crazy: In Safari the TextMetrics.actualBoundingBoxRight returned from CanvasRenderingContext2D.measureText() includes dangling spaces, and Chrome does not. So you’ll get different text measurements if the text has a space on the end, which broke my app’s logic of rendering multiline rich text in Chrome. Ugh.

slivanes|4 years ago

I'm trying to figure out which browser is the biggest cancer for the WWW.

On the one hand, you have Safari whom has a parent company that isn't interested in making it have useful feature parity with the others because it'll then allow escape from their gravy train app store (fully working PWA's, non-compete with rendering engines in iOS). Their lack of keeping up is starting to look a bit like IE6 days.

And on the other, you have Chrome whom has a parent company that claims it wants to improve privacy (FLoC), but to me it is more of a "pulling the ladder up on everyone else" because they have so many other methods to track you (DNS, GA, Android, etc.) that limiting everyone would be disingenuous. Pushing AMP is another example of bullying behavior.

reaperducer|4 years ago

I think Safari, flaws and all, is pretty much the only browser that has any weight against Chrome.

Tell your manager that you want the web site to support Firefox or Brave or something else, and they'll tell you it's a waste of time.

Tell them that the web site won't work on their MacBook, and it's a four-alarm fire.

In a lot of ways, I wish Safari would deviate even more from Google's "standards" just so that maybe it would pull Big G back to the center some how.

throwawayswede|4 years ago

> This is a post about a bug in Safari, but if you just want to ship a Phoenix app, the easiest way to learn more is to try it out; you can be up and running in just a couple minutes

I'm sort of sick of this phenomena/trend of marketing/promotional material being masked as technically helpful content.

This is exactly like the appalling methods of native advertising (aka sponsored content), but now used for self-promotion.

ebiester|4 years ago

However, in this case it was technically helpful content and sharing a frustrating story. It was one paragraph that was easy to ignore. There was no popup or call to action past that simple paragraph. As far as native advertising, this is as benign as it gets.