A month with the WordPress Core team – January 2023
January was an exciting month! Together we worked on PHP 8.0+ compatibility, editor enhancements and accessibility improvements for WordPress version 6.2. Among other things, we attended bug scrubs and the old Trac ticket triage, and helped land the custom CSS feature in the Site Editor.
Our monthly updates
In the last month, with the WordPress new release approaching, I spent a good amount of time in testing accessibility of the new features. I mostly focused on the Site Editor. There’s still lot of room for improvements. Testing surfaced a series of regressions and unexpected behaviors in some of the most basic accessible design patterns such as modal dialogs, constraining tabbing within modals, setting initial focus on some components and the like. Often, these patterns work in a slightly different way depending on the browser in use. When it comes to keyboard focus and interaction, browsers behavior may actually differ. That’s why it’s very, very, important to test these features with all major browsers, which is an extremely time-consuming process. I reported all my findings in new issues on the Gutenberg repository and I’m still working to solve most of them.
For the past month I continued triaging and reviewing tickets for the next major release, WordPress 6.2, as part of my duties as a Core Committer.
I made fifty-eight commits to WordPress core, mostly various bug fixes and enhancements. I also led two meetings for new core contributors and triaged new tickets incoming into Trac (the bug tracking system that WordPress uses).
Some notable changes include:
- Continuing with various unit test improvements in core. See ticket #56793 for more details.
- Renaming function parameters that use reserved PHP keywords. While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names. See ticket #56788 for more details.
Gutenberg & Core
Since the last update several of my pull requests have been merged into Gutenberg. Including improvements and bug fixes for the featured image block, tag cloud, and cover block. You can now select an HTML element for the cover block.
After trying many different solutions, I have re-added the excerpt length option to the post excerpt block. This change will not be part of 6.2, but you can try it out in the plugin soon.
The Gutenberg contributors have approved the new Details / Summary block, and will add it to Gutenberg in a future update.
For core, I focused my efforts on triage and testing patches for the bundled theme component tickets in the 6.2 milestone. There was some overlap because I needed to make changes to Gutenberg before addressing some issues in the bundled themes. For example, I added missing CSS classes to twenty one blocks.
I have done a lot of reading to learn more about the style engine package, because it will have a more important role from 6.2 and forwards. For example, I could use it to make it easier to add the CSS classes I mentioned. I also published an update to the theme developer handbook, and one more update is under review.
I continued working on the
SQLite implementation for WordPress. This is a big project, and it will take a few more months before we can call it “ready for production”.
I split the implementation from the performance-lab plugin to a separate, standalone plugin. This is something that Matt requested in a comment. Since its release, there have been several updates to the plugin with bugfixes and improvements.
I am currently collaborating with @adamziel, working on a refactor of the code to strengthen security and further abstract the implementation. Our refactor is based on an SQL-parser package from PHPMyAdmin, showing a lot of promise!
Forms and input fields blocks
Though there wasn’t a lot of progress in this area, I pushed some bugfixes and improved the UI a bit. You can test the implementation yourself and provide feedback on #44214.
The API was renamed to “Fonts API”, and we are now one step closer to including it in WordPress Core.
Unfortunately, we didn’t make it on time for the WP 6.2 release, and it will be included in the next major release (6.3). Besides renaming and completely refactoring the API, some other minor fixes were also pushed – like the removal of
local() CSS functions in the generated styles.
- Reviews: As always, a big part of our job is performing Code reviews. I dedicated a big portion of my time to reviewing code in the Gutenberg project.
- Tests: Tests can take many forms – from manual testing to writing automated tests for pre-existing code. We try to include automated tests for all the code we add in the WordPress project, and in addition to that, spend many hours manually testing the included changes to ensure there are no regressions.
- Localizations/Translations: Localizations is one of the most important parts of WordPress. It’s also one of the most resources-intensive processes! This month I explored some options to improve the performance of translations in WP. There is an interesting discussion in the performance project regarding translations… Definitely something to keep an eye on.
- Backporting Changes from Gutenberg to WP-Core: I helped backport some PHP changes from Gutenberg to the next major release of WordPress.