Make WordPress Core

Opened 8 weeks ago

Closed 7 weeks ago

Last modified 7 weeks ago

#64266 closed defect (bug) (fixed)

Core Menu Icons disappeared in WordPress 6.9 RC1 using Safari Browser 15.6.1

Reported by: codex-m's profile codex-m Owned by: joedolson's profile joedolson
Milestone: 6.9 Priority: normal
Severity: normal Version: 6.9
Component: Administration Keywords: has-patch commit dev-reviewed
Focuses: Cc:

Description

1.) Are you using either the latest version of WordPress or the latest development version? If not, please update first.

Answer: Yes, I tried both WordPress 6.9 RC1 (using Beta tester plugin) and the latest trunk (via SVN).

What steps should be taken to reproduce the problem consistently?

  • Use an older macOS version, such as Catalina.
  • Use an older version of Safari, such as 15.6.1
  • In a fresh WordPress install of the latest stable version (6.8.3) - no issues.
  • Upgrade to the latest WordPress 6.9 RC1 or trunk - core menu icons gone.
  • Please see attached screenshots comparing the two scenarios.

This is how it looks in WordPress 6.8.3:
https://i.postimg.cc/mz5rBmnj/menu-icons-exist-WP6-8-3-stable.jpg

This is how it looks with WordPress 6.9 RC1:
https://i.postimg.cc/xJ4dn6Z6/no-menu-icons-WP6-9-RC1.jpg

You can see it here also: https://postimg.cc/gallery/xJDpQSt

2.) Does the problem occur even when you deactivate all plugins and use the default theme?

Yes, even with a fresh installation (no activated plugins) and using the default theme, the issue is reproduced.

3.) In case it's relevant to the ticket, what is the expected output or result? What did you see instead?

I expected to see a core menu dashicons just like it was in WordPress 6.8.3, but I don't see anything instead.

4.) Please provide any additional information that we'd find helpful. (OS and browser for UI defects, server environment for crashes, etc.)

  • I'm testing with macOS Catalina inside a virtual machine, and I'm unable to verify with a newer version (I don't have access to one).
  • I'm using an older version of Safari (15.6.1), but I'm unable to verify it with newer versions as I don't have access to them.
  • I'm using the MAMP environment.
  • The issue is reproducible in both multisite and single-site environments.
  • In my test, I'm using PHP 7.4, but when I use PHP 7.4 on Linux with Firefox and WordPress 6.9, there are no issues. So, this is not a PHP-related issue - most likely a Safari isolated browser issue.

If you think this result is expected (e.g., deprecated support for old versions of Safari), then it's fine to close this ticket. Otherwise, if this issue is not expected to happen, this may be a regression, which is why I'm creating this ticket for informational purposes. Thank you!

Attachments (2)

menu-icons-exist-WP6-8-3-stable.jpg (148.1 KB) - added by desrosj 8 weeks ago.
no-menu-icons-WP6-9-RC1.jpg (145.7 KB) - added by desrosj 8 weeks ago.

Download all attachments as: .zip

Change History (19)

#1 @sabernhardt
8 weeks ago

  • Component changed from Menus to Administration

[60885] used the modern alternative text for CSS content, which Safari did not support before 17.4.
https://caniuse.com/mdn-css_properties_content_alt_text

#2 @wildworks
8 weeks ago

  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from new to closed

Should we close this ticket as wontfix? The Core Handbook lists "Last 2 Safari versions." as the browser support.

https://make.wordpress.org/core/handbook/best-practices/browser-support/

cc @joedolson

#3 @joedolson
8 weeks ago

  • Milestone set to 6.9
  • Resolution invalid deleted
  • Status changed from closed to reopened

That's an interesting question. The browser support does say last two browser versions, but we've been ambiguous about what that means in a broader sense. I've generally interpreted that as the WordPress Admin, and external use should be treated separately.

Which means that with *this* specific issue, we should consider this as a wontfix, but should perhaps reconsider the global changes I made to dashicons, which will impact any use of the dashicons classes by any theme or plugin.

#4 @joedolson
8 weeks ago

The commit included changes that are specific to admin uses, but I'd potentially want to revert the changes to dashicons.css.

#5 @desrosj
8 weeks ago

@codex-m small request for the future, please upload the images directly to Trac. If an external image hosting site shuts down, this ensures that the images are always accessible in the future.

I did a bit of research to try and decide if we should revert this change. Here's what I found.

I looked into finding some usage statistics for Safari 15.6.x. Usage seems to sit at 0.167% according to the caniuse-db package, which is accessible visually through this site.

I then looked at the which version of MacOS was blocked from upgrading past this version of Safari, and that is a more complicated question. Statcounter's desktop MacOS version page has a large note at the top:

Apple are incorrectly reporting all macOS releases since Catalina 10.15 as Catalina 10.15. You can read more about it here.
We can't correctly show usage for Catalina 10.15, Big Sur 11, Monterey 12, Ventura 13 or Sonoma 14 until Apple fixes this.

I next tried to find statistics for iOS versions, and which devices were blocked from updating to newer version of Safari. Wikipedia has this:

iOS 15 is the final version of iOS that supports the iPhone 6s & 6s Plus, first-generation iPhone SE, iPhone 7 & 7 Plus, and seventh-generation iPod Touch, as its successor, iOS 16, drops support for those models.

I couldn't find good data about the percentage number of iOS devices by type, but I found iOS version data. Based on this, ~5.4% of all iOS traffic is on a 15.x version of iOS.

I don't think we can reasonably rely on the data here and have to assume that there is 5-8% usage to be conservative. When applied to WordPress at scale, just 5% is millions of sites.

Another aspect to this is that the Classic Editor uses Dashicons for the TinyMCE buttons. If the Dashicons font is broken, then that is completely unusable.

Given all this, I think that reverting the changes to dashicons.css for 6.9 makes the most sense to me.

#6 @joedolson
7 weeks ago

I'll take care of the partial revert covering the changes in dashicons.css, @desrosj. I agree with your logic.

The changes will still impact some cases, because we're not talking about reverting all admin changes, but will remove the impact that is outside of WordPress core usage.

And yes, I really wish that Safari versioning was a little easier to research...such a mess!

#7 @joedolson
7 weeks ago

  • Owner set to joedolson
  • Status changed from reopened to accepted

This ticket was mentioned in PR #10543 on WordPress/wordpress-develop by @joedolson.


7 weeks ago
#8

  • Keywords has-patch added

This will prevent plugins and themes that require dashicons.css from breaking support for older Safari versions.

For clarity, this does *not* resolve the issue reported in the related ticket; core menu icons will still be missing in unsupported Safari browsers. But it will prevent this issue from expanding to 3rd party applications that require dashicons.css as a dependency.

Trac ticket: https://core.trac.wordpress.org/ticket/64266

This ticket was mentioned in Slack in #core by wildworks. View the logs.


7 weeks ago

#10 @wildworks
7 weeks ago

  • Keywords needs-testing added

This ticket was mentioned in Slack in #core by welcher. View the logs.


7 weeks ago

#12 @welcher
7 weeks ago

  • Keywords commit added; needs-testing removed

This was reviewed in the 6.9 bug scrub and it was felt that because this change reverts to a previous state, we can remove the needs-testing keyword and move forward.

Last edited 7 weeks ago by welcher (previous) (diff)

#13 @joedolson
7 weeks ago

  • Resolution set to fixed
  • Status changed from accepted to closed

In 61290:

Admin: Remove alt syntax from dashicons.css

Safari only introduced support for alternative text in generated CSS content in version 17.4, released in 2024. This meets the latest two version declared for core browser support. But because dashicons.css is commonly required on the front-end for plugins and themes, this support impacts front-end users, and the browser support guidelines for core should not apply in this context.

Follow up to [60885].

Props codex-m, sabernhardt, wildworks, joedolson, desrosj, welcher.
Fixes #64266.

#14 @joedolson
7 weeks ago

  • Keywords dev-feedback added
  • Resolution fixed deleted
  • Status changed from closed to reopened

Reopening for backport to the 6.9 branch.

#15 @desrosj
7 weeks ago

  • Keywords dev-reviewed added; dev-feedback removed

[61290] looks good to backport, @joedolson!

#16 @joedolson
7 weeks ago

  • Resolution set to fixed
  • Status changed from reopened to closed

In 61293:

Admin: Remove alt syntax from dashicons.css

Safari only introduced support for alternative text in generated CSS content in version 17.4, released in 2024. This meets the latest two version declared for core browser support. But because dashicons.css is commonly required on the front-end for plugins and themes, this support impacts front-end users, and the browser support guidelines for core should not apply in this context.

Follow up to [60885].

Reviewed by desrosj.
Merges [61290] to the 6.9 branch.

Props codex-m, sabernhardt, wildworks, joedolson, desrosj, welcher.
Fixes #64266.

This ticket was mentioned in Slack in #core by benjamin_zekavica. View the logs.


7 weeks ago

Note: See TracTickets for help on using tickets.