X-post: Accessibility improvements to widgets outputting lists of links in 5.5

X-comment from +make.wordpress.org/core: Comment on Accessibility improvements to widgets outputting lists of links in 5.5

Gutenberg + Themes: Week of July 6, 2020

Hi everyone! Here’s the ninth weekly roundup of theme-related discussions, fixes, and developments in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/

Since conversations are ongoing, some of the issues & PRs mentioned were also present in previous weeks. We’ve tried to put brand new ones at the top of each of the bulleted lists. 

Please weigh in on the tickets below — your voice and feedback are welcome! 

In progress / Discussions:

General

  • Custom gradients cannot be edited if there are no explicit stops specified. 23501
  • Gradient stops should be allowed to fully overlap in the gradient UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing.. 23816 
  • Discussion around adding font unit options to the font size selector. 23323

BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.-based Themes

  • Add a tutorial about how to build a block-based theme. 23732
  • Discussion about the support of shortcodes in block-based theme templates. 23626
  • Discussing the use of conditional logic in experimental-theme.json. 22324
  • Tracking issue for Template Tags in Full Site Editing. 22724 
  • Add Template lock to templates created in editor. 23532

FSE Blocks

A set of blocks are available with the Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party to enable building templates in FSE.

  • Add a site description block. 23788
  • HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. and CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. not present/inconsistent for FSE Blocks. 22759
  • Suggestion for Site Title styling options. 23228
  • Group block is missing alignment options in the full-site editor. 23431

Global Styles

  • Tracking and consolidating style attributes for blocks. 22700 

Navigation

  • This board tracks Navigation Screen and Navigation Block issues that are important for the WordPress 5.5 releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software.. Project Overview
  • There is a new standing weekly meeting in #core slack specific to the Navigation block and screen. The first meeting was Wednesday July 8th. 

Merged:

General

  • Fixes for the issue where custom theme colors don’t work in the editor after Gutenberg 7.9.1. 22356
  • Fix centered legacy buttons. 23381
  • Add a default line height rule to the post title. 23656

Block-based Themes

  • Add a Site Logo Block. 18811
  • Expand and update Block-based Themes documentation page. 23750
  • Link to theme-experiments repo in block-based theme documentation. 23748
  • References to “Section” in the full-site editor were changed back to “Template Part” 23765

General Resources:


Thanks to @itsjusteileen, @jffng, and @joen for help pulling this post together. Please let us know if it was helpful in the comments!

#gutenberg-themes-roundup

Meeting notes Tuesday 7th of July 2020

The recap of the meeting is below and you can read the meeting transcript in the slack archives (a Slack account is required).

Weekly Updates

In the past seven days:

  • 257 tickets were opened
  • 275 tickets were closed:
  • 254 tickets were made live.
  • 20 new Themes were made live.
  • 234 Theme updates were made live.
  • 2 more were approved but are waiting to be made live.
  • 21 tickets were not-approved.
  • 0 tickets were closed-newer-version-uploaded.

The current waiting time for new themes is 4 weeks. 73 themes are in the new queue.

Using reusable blocks to ease the transition to blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. based themes

@aristath Has written a post about using reusable blocks outside the content.

Reusable blocks can be used as a stepping stone for themes that want to make use of the block editor for headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes./footer/sidebars etc. before FSE is officially released.

It was suggested during the chat that theme authors should try full site editing instead of a temporary solution. Full site editing is not stable enough to be used in production, but reusable blocks are stable and can be used with existing themes.

Theme uploads that are blocked by Theme Check because of their images

Older themes with images from Unsplash and Pixabay, where the images were added to the theme before the website’s license change, have been blocked by Theme Check when uploaded to the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ theme directory.

The check in Theme Check does not only prevent the images but the use of the word Unsplash. Related: https://github.com/WordPress/theme-check/issues/259

It was decided that Theme Check will be updated to no longer block the images. This is a very small code change.

Allowing themes to place their admin page outside the appearance menu for increased visibility

This topic arose from a question about whether themes are allowed to add a panel with information to the block editor sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme./tools panel. This is not allowed.

To keep the editor free from clutter, advertising and upsell, with the customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. being used less, and no dashboard widgets being allowed, can we give theme authors a better place to include their information, and limit upsell to that area?

If a top level menu item would be allowed, these restrictions were suggested:

  • No priority may be used.
  • No UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. or color changes are allowed for the menu item.
  • The title must be kept short and not include spam.
  • If a custom icon is used it must be a single color.
  • No more than 3 subpages.

A longer more heated discussion took place after the meeting, and the decision was postponed. A new post will be created on the teams make blog to discuss it further.

We want to remind everyone that the requirement for not adding any obtrusive upsell is still in place.

How do we best handle updates to themes that have not been updated in two years?

Updates to themes that had not been updated in two years used to “get stuck” because reviewers were not able to see that they did not go live automatically.

We now have these updates listed in their own queue on the themes TracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. https://themes.trac.wordpress.org/report/1 And while the new queue is 4 weeks, this queue is 3 months.

  • There are not enough reviewers to cover all queues.
  • Theme authors may not be aware that their update is not going live automatically
  • Theme authors may not be aware of that old themes has to follow the current requirements.

It was suggested that these themes should be set live, and there was a short discussion about if it was safe to set them live. It is common for these themes to not follow the current requirements.

The discussions resulted in no changes being made to the queue. We need to remind theme reviewers to also review themes from this queue.

Update on the navigation block/navigation screen

The navigation block and navigation screen will not be ready in time for WordPress 5.5. Please help test these features.

There is a new meeting about navigation on Wednesdays at 07:00 UTC in the #core channel on the WordPress slackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

@aristath Has created and written about a menu filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. that helps theme authors add markup and CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. classes used by the block to the current nav menu.

This will help theme authors use the same styling for their current navigation and the navigation block.

It was suggested during the navigation meeting that the Navigation block should output markup that is as identical as possible to existing menus.

Date and time of the next meeting

It was agreed that the next team meeting will be on Tuesday, August 4th, 2020 at 1700 UTC.

#themes-team

X-post: External Linking Policy – “Commercial blogs”

X-post from +make.wordpress.org/docs: External Linking Policy – "Commercial blogs"

Printing navigation-block HTML from a legacy menu in themes

Full-Site Editing (or FSE for short) is scheduled to be released with WordPress 5.6. In the meantime, the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party includes a Navigation BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. that theme-authors can use to experiment and preview what their navigation will look like once users are able to use FSE on their sites.

You can already start preparing for this shift by making the default WordPress navigation use an HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. structure similar to what the Navigation block is going to print.

To do that, you can paste the following code in your theme’s functions.php file:

/**
 * Filters the CSS class(es) applied to a menu list element.
 *
 * @param array $classes Array of the CSS classes that are applied to the menu `<ul>` element.
 * @return array
 */
add_filter( 'nav_menu_submenu_css_class', function( $classes ) {
    return [ 'wp-block-navigation__container' ];
} );

/**
 * Filters the CSS classes applied to a menu item's list item element.
 * 
 * @param array $classes Array of the CSS classes that are applied to the menu item's `<li>` element.
 * @return array
 */
add_filter( 'nav_menu_css_class', function( $classes ) {
    $item_classes = [ 'wp-block-navigation-link' ];
    if ( in_array( 'current-menu-item', $classes ) ) {
        $item_classes[] = 'current-menu-item';
    }
    if ( in_array( 'menu-item-has-children', $classes ) ) {
        $item_classes[] = 'has-child';
    }
    return $item_classes;
} );

/**
 * Filters the HTML attributes applied to a menu item's anchor element.
 * 
 * @param array $atts The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
 * @return array
 */
add_filter( 'nav_menu_link_attributes', function( $atts ) {
    $atts['class'] = 'wp-block-navigation-link__content';
    return $atts;
} );

/**
 * Filters a menu item's title.
 * 
 * @param string $title The menu item's title.
 * @return string
 */
add_filter( 'nav_menu_item_title', function( $title ) {
    return '<span class="wp-block-navigation-link__label">' . $title . '</span>';
} );

/**
 * Filters a menu item's starting output.
 * 
 * Append the dropdown arrow to links with submenus.
 * 
 * @param string   $item_output The menu item's starting HTML output.
 * @param WP_Post  $item        Menu item data object.
 * @return string
 */
add_filter( 'walker_nav_menu_start_el', function( $item_output, $item ) {
    $has_children = in_array( 'menu-item-has-children', $item->classes );
    if ( $has_children ) {
        $item_output = str_replace(
            '</a>',
            '</a><span class="wp-block-navigation-link__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" transform="rotate(90)"><path d="M8 5v14l11-7z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span>',
            $item_output
        );
    }
    return $item_output;
}, 10, 2 );

Then to print the navigation you can use the following in your header.php file:

<nav class="wp-block-navigation" role="navigation">
	<ul class="wp-block-navigation__container">
		<?php
		wp_nav_menu(
			array(
				'container' => '',
				'items_wrap' => '%3$s',
				'theme_location' => 'primary',
			)
		);
		?>
	</ul>
</nav>

This will allow you to see what the future structure of navigation will be in WordPress themes and you can start converting your styles & scripts accordingly to accommodate these changes and be ready for when they land in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..