A week with us: Progress on the Webfonts API

Our main focus this week has been WordPress 5.9. Justin has been working on end-to-end (E2E) tests for the Application Passwords feature, and Ari has worked on the Webfonts API and followed up on feedback on the performance team proposal. There were a lot of responses! We are excited about how well the community received the proposal.

Our weekly team updates


WordPress 5.9

Last week I continued looking into some early tickets for WordPress 5.9 as part of my duties as a core committer. I made ten commits to WordPress core, mostly various bug fixes and enhancements. I also led a meeting for new core contributors and triaged new tickets incoming into Trac (the bug tracking system that WordPress uses).

Some notable changes include:

  • Various coding standards fixes in core. See tickets #54277, #54278, #54284 for more details. Thanks to @sabbirshouvo, a new WordPress contributor, for improving escaping in various parts of core!
  • Adding a context for some Media Library filter strings for better translations. See ticket #54238 for more details.


This week, I have participated in an evaluation meeting for contributor day. What’s more, I familiarized myself with Twenty Twenty-Two (the new default theme in WordPress 5.9) and submitted a PR to the theme.


So far this week, I have done follow-ups, PR reviews, and triage. I explored different solutions for improving the display of sticky posts in the post template block. However, I wish that the developers who made the initial versions of these blocks had documented their thought processes and decisions so that I don’t need to try things they have already discarded.

I am keeping an eye on the Gutenberg 5.9 Must-haves project on GitHub. But the rest of the week, I want to focus on PR reviews and getting things done.


Webfonts API

This week my main focus was the Webfonts API, as it is one of the things that we want to address in WordPress 5.9. We have almost finished the implementation, and we addressed most of the concerns people had:

  • Allows enqueueing webfonts from bundled font-files in themes or plugins.
  • Can use Google fonts.
  • Allows registering other webfont providers.
  • Uses a consistent and easy to use format to define webfonts
  • Can be used in block-themes using the theme.json file, and in classic themes using a wp_register_webfonts PHP function.
  • Allows registering multiple fonts at once (font-collections).

You can read more about the patch and see its code in the pull request on #1736. However, the patch for WordPress-Core is not the only thing we had to build for this API.

A pull request is in the works for the Gutenberg plugin (#35625) and another one for the Twenty Twenty-Two theme (#95). We need to merge all three of these on time for WordPress 5.9, so time is of the essence.

What makes timing a challenge is that we can’t merge the Gutenberg pull request before committing the core patch, and we can’t merge the Twenty Twenty-Two patch before we merge both the core and Gutenberg patches. With that in mind, if anyone can help us review and merge these patches on time, we would appreciate all the help we can get – starting with the core patch.


After more than six months and significant effort, we finally managed to merge pull request #30825. That patch allows the WordPress editor to autogenerate headings for anchors, and I consider it a huge improvement for end-users. When reading an article, users will now be able to link directly to the section that interests them, and the same applies to search engines.

An additional benefit of merging that improvement is that we are now one step closer to implementing a Table of Contents (TOC) block in Gutenberg.


Gutenberg E2E tests

Lately, I’ve been working on the Gutenberg flaky E2E tests with, among others, merged fixes for meta boxes and taxonomies tests. I’m also still triaging the report to fix the other unstable tests.

Core E2E tests

Regarding Core E2E tests, I have continued to provide feedback and improvements to the tests for the application password functionality.


I am focusing more and more on our team processes and functioning. So, I will probably give fewer updates here to avoid writing a list of calls I had and Jira issues I opened to edit the team handbook every week. ;-)

I dedicated some time to the Performance Team initiative. I won’t be taking an active role in it, but I did a peer review of the post and read the comments that were left with interest. There is a lot of work to be done, and I am excited to see performance becoming not only a focus keyword on Trac.