### Fixed
* Improve Genesis block editor sidebar styling under WordPress 7.0.
* Improve styling of "install pack" buttons in Genesis one-click theme setup under WordPress 7.0.
* Resolve deprecation notices for the Genesis block editor sidebar under WordPress 7.0.
* Fix a warning under PHP 8.5 that could be generated by genesis_get_image if wp_get_attachment_image_src returned false.
* Fix defer and async parameter stripping in the script loader. The defer=true and async=true strings are now correctly removed from query params after defer or async properties are added to script tags.
### Security
* Sanitize HTML in Genesis shortcode attributes to prevent XSS from contributor-level users. Thank you to 'Muhammad Yudha - DJ' for the report (CVE-2025-10737).
* Add new `genesis_shortcode_attribute_allowed_html` filter to adjust allowed HTML in Genesis shortcode attributes if needed. Defaults to the same as `wp_kses_allowed_html( 'post' )`.
### Fixed
* Fix “doing it wrong” textdomain notices under WordPress 6.7+ by deferring menu, layout and admin notice logic until `after_setup_theme`. If you still see notices after updating Genesis, check for child theme and plugin updates. For example, Genesis Sample and Genesis Blocks have also been updated to resolve textdomain notices.
* Fix `str_contains` deprecation notice in the Customizer under PHP 8.2+ relating to custom footer output.
### Changed
* Developers: custom layouts created via `config/layouts.php` now defer loading of layout labels. If you use `config/layouts.php` in your child theme, you will need to (a) remove translation functions such as `__()` from `layouts.php` and (b) move your translated layout labels to `config/layouts-labels.php` to avoid “doing it wrong” notices with WordPress 6.7+. See Genesis layout docs for details: Genesis Layouts | Genesis Developer Docs
* Fix `Elements with visible text labels do not have matching accessible names`.
* Resolve php 8.2 error passing null to strlen.
### Fixed
* Fix an error with the User Profile widget on WP `5.9`.
* Also run PHPUnit tests on PHP 8.0 and 8.1.
* Prevent a PHP `8` deprecated notice for `str_replace()`.
* Prevent PHP 8 notice from conversion of `false` to array.
* Update dependencies with `npm audit fix`.
### Added
* Using the use_widgets_block_editor filter in WordPress 5.8, the pre-5.8 widget screen behavior remains the same. To opt-in to the new WP 5.8 widgets editor, place this code in your theme's functions.php file: `add_filter( 'use_widgets_block_editor', '__return_true' );`
### Added
* Accessibility: Added title as `aria-label` to `<article>` element to improve screen reader UX when using the rotor to view all articles on the page.
### Fixed
* Add missing `permission_callback` to public Genesis REST routes to prevent a notice under WordPress 5.5.
### Changed
* Use `excerpt_remove_blocks` to remove block content such as image captions and embed URLs from `get_the_content_limit`.
* Change "Enable auto-updates" in WordPress 5.5 to text that describes where to enable Genesis update checks.
* Improved standards for admin CSS.
* Disable `genesis-lazy-load-images` theme support under WordPress 5.5. WordPress 5.5 adds image lazy loading by default.
### Removed
* Use of `wp_make_content_images_responsive` in archive, singular, and featured widget images; `srcset` is applied via `wp_calculate_image_srcset` in `wp_get_attachment_image` used by `genesis_get_image`.
Adds support for Gutenberg 7.9 and future block editor adjustments.
### Fixed
* Block Editor: prevent an editor crash if the Genesis sidebar is active.
* Block Editor: ensure the Genesis sidebar icon is visible.
Ensures official Genesis translation language packs load correctly.
* Internationalization: Enable language pack updates work on WordPress multisite as long as the main site is using a Genesis theme. Previously, Genesis language pack update prompts would only appear if the main site used a Genesis theme and did not use the en_US locale.
* Internationalization: Fix a fatal error that could occur on sites with custom Genesis translation files that contain an unreadable PO-Revision-Date header.
### Added
* Internationalization: Non US English sites can now download the latest Genesis parent theme translations without using a plugin.
1. Check your language is listed and has translations at Genesis 3.3 < GlotPress.
2. Disable the Genesis Translations plugin if using.
3. Check for language pack updates at Dashboard → Updates. If you do not see language pack updates, switch your site language to US English at Settings → General, save changes, then switch back to your own language and check for language updates again.
### Fixed
* Accessibility: Author box titles on author archives now use h2 instead of h4 to prevent heading levels from jumping.
* Accessibility: Prevent “Reader Interactions” screenreader text appearing below content if there are no comments, comment form, or trackbacks on display.
* Accessibility: Move `role="navigation"` from the list element to the wrapper element on pagination navigation.
* AMP: Fix CSS string format used in the AMP menu styles.
* Block Editor: Show singular, post-type, and ID-specific layouts in the Genesis sidebar layout selector.
### Changed
* REST: Accept multiple comma-separated layout types for the /layouts/ Genesis REST endpoint.
* Standards: switch all instances of `date()` to `gmdate()` to adhere to new WordPress standards recommendations.
* Tooling: simplified the creation of the Genesis zip file during the release process.
### Removed
* Internationalization: Old translations download script tooling was removed in favor of the new automated language pack download feature.