Media Meeting Recap – May 6, 2021

The following is a summary of the weekly Media component meeting that occurred on Thursday, May 6, 2021 at 14:00 UTC. Weekly media meetings are held every Thursday at 14:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @mista-flo, @chaion07, @adamsilverstein, @paaljoachim, @hellofromtonya, @sergeybiryukov, @desrosj

Media 5.8 tickets

This meeting’s discussion focused around WebP and 5.8 Media features.

#35725: Add WebP support – WebP support has been merged! Please test on all configurations possible to ensure there are no edge case issues. Big props to @adamsilverstein and all who helped make this happen! Adam mentioned that a post is in progress that will provide an overview to the new WebP supports.

#52876 Add capability to set default format for image sub-sizes. – This ticketticket Created for both bug reports and feature development on the bug tracker. is in progress and adds a new 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. where people can set a default image type such as WebP. @adamsilverstein has asked for some testing assistance to ensure everything works as intended. Testing instructions can be found here.

#50105: Remove infinite scrolling behavior from the Media grid – It was agreed during the meeting that for the button that moves focus to the first newly loaded media item, “Jump to first loaded item” is a great way to make this not focus on images or any other specific media type and still be clear. @hellofromtonya mentioned in the meeting on the pending count issue, “I think it would be a better experience for users if we could solve it before 5.8 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.. That said, it would be good to get the patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. committed and then work on that specific issue as a follow-up.” It was agreed by multiple participants in the meeting that landing this sooner and iterating is ideal.

#37255: Update attachment functions to accept a post object in addition to ID@hellofromtonya mentioned keeping this ticket focused on resolving the issues that were identified and moving any broader scope to a separate issue to avoid this being punted to a future release again.

Props @antpb for proofreading and final review.

#core, #media, #summary

Media Meeting Recap – January 28, 2021

The following is a summary of the weekly Media component meeting that occurred on Thursday, January 28, 2021 at 15:00 UTC. Weekly media meetings are held every Thursday at 15:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @paaljoachim, @hellofromtonya, @joedolson, @ricjcs, @audrasjb, @mista-flo, @mkaz, @chaion07

Open Floor

This meeting’s focus began with an open floor for discussion on outstanding tickets and issues members wanted to address.

#47839: Extended file management in Media Library – @ricjcs brought up this ticketticket Created for both bug reports and feature development on the bug tracker. containing design samples of what folders could look like in the media library. Discussion occurred around what this feature would entail from a backwards compatibility perspective.

#52372: Ability to Replace image on the “attachment details” screen – This feature has been explored and ultimately closed after this comment in #49096. Per @antpb, “This is another one where I don’t think it’s a bad idea, in fact, it’s great, but it’s very much in 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 territory to make the decisions for your individual site. What may be good for one site may not be good for all. Offering the ability to replace media by default offers folks ways to unintentionally break old content.”

5.7 Tickets

#52192: REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: Add batch image editing This ticket is currently in review with @antpb and is aiming to be committed before alpha. It was discussed that this endpoint is low risk as it does not impact any existing endpoints and adds new ones.

#50025: Media Library not showing new uploads when filtering by date – This ticket is currently in review after it was found to have issues with the classic 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. media flow. @antpb is testing and will be aiming to commit before alpha.

#39004: Alt attributes should be searchable in media library – This ticket was discussed as being close to ready for commit, but talks after the meeting indicate it may need further testing with larger media libraries.

#52387: adjacent_image_link returns a link with no accessible text@antpb has given an initial review and is aiming to commit soon after more testing.

Bug Scrub

There are a number of enhancement tickets that still need to be scrubbed. A bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub has been scheduled for Monday, February 1 at 16:00 UTC to go over these tickets. Please join us if you would like to contribute!

Props @antpb for proofreading and final review.

#core, #media, #summary

Media Meeting Recap – December 03, 2020

The following is a summary of the weekly Media component meeting that occurred on Thursday, November 3, 2020 at 15:00 UTC. Weekly media meetings are held every Thursday at 15:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @sergeybiryukov, @joedolson, @hellofromtonya, @joel-yoder, @mista-flo, @aristath, @alexdeborba

Media Focus for 5.7

The focus for 5.7 was discussed and it was mentioned that there were many outstanding accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) issues that should be considered. It was agreed these should be moved into the scope of the release.

#50105: Remove infinite scrolling behavior from the Media grid

#50273: Media modal uses incorrect ‘checkbox’ role for list items

#47120: Media modals: Upload errors and field information are not associated with their control

#39004: Alt attributes should be searchable in media library

There has been a bit of buzz in the Media 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/. channel around a desire for more modern media formats to be considered as a focus. @azaozz recommended prior to the meeting that the following is considered when modern image formats are considered for 5.7.

A Media Focus Lead for 5.7 would be good if everybody here thinks we’ll manage to add support for (at least) .webp . Currently this is still at the “exploratory” stage. Main questions that needs solid answers:

How to resize WebP images?

How to detect browsers that don’t support WebP and serve fallback images?

Would WP expect the users to upload WebP images or would it convert JPEGs, PNGs and GIFs to WebP?

Seems that ideally WP will convert uploaded images to WebP and serve them when the site visitor’s browser supports them. The originally uploaded images would serve as fallback. Determining browser support would be best by “Server-side content negotiation via Accept headers”. Replacing <img> with <picture> on the fly would bring a lot of side effects/compat problems. Frankly not sure if that would be ready by the cut-off time of early to mid February, even if work starts right now  On the other hand, this needs to be done, 5.7 or not.

@azaozz

After a bit of discussion from attendees, it was generally agreed that for modern media formats there is still discovery work that needs to happen, a proposal to scope the work, and an outline of risks and blockers. The questions asked by @azaozz above are a good starting point in thinking this through.

@joedolson asked “Is there any reason modern image types can’t be staged across multiple releases? E.g., add support for uploading & inserting modern image types, and expand usage later? There’s nothing about adding WebP and SVG that requires them to be globally used; just made available. The bigger problems seem to be in what happens if you start auto-switching existing images between img/picture, etc.”

We’ll leave these these notes on 5.7 with an invitation to comment below about further considerations.

Time of Meeting

For frequent attendees it was determined that the current time of 15:00 UTC is currently working for most people’s schedules. If there are any thoughts on this time, feel free to comment below!

Props @antpb for proofreading and final review.

#core, #media, #summary

Media Meeting Recap – November 12, 2020

The following is a summary of the weekly media component meeting that occurred on Thursday, November 5, 2020 at 15:00 UTC. Weekly media meetings are held every Thursday at 15:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @sageshilling, @johnbillion, @paaljoachim, @hellofromtonya, @mista-flo, @hongnizzle

5.6 Remaining Tickets

@mista-flo mentioned two tickets that were not included in the 5.6 milestone but should have. These have been committed as of today.

#39968Media Library: deleting all items on the last page loses the pagination/navigation buttons and shows message – The ticketticket Created for both bug reports and feature development on the bug tracker. is related to existing changes in 5.6 and wasn’t added to the milestone. This has been reviewed and committed.

#51396[Media upload.php] Switch back from grid to list mode reopen the modal – Consensus from those present in the media meeting was that this was a safe change to include in the 5.6 milestone. It has since been committed.

Because there wasn’t time to complete the agenda item to review new tickets that require attention, @antpb is proposing a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub away from the regular meeting times. The list has grown quite a bit, so any assistance is appreciated! Please leave a comment below with a time that works for you.

Props @antpb for proofreading and final review.

#core, #media, #summary

Media Meeting Recap – October 29, 2020

The following is a summary of the weekly media component meeting that occurred on Thursday, October 29, 2020 at 14:00 UTC. Weekly media meetings are now held every Thursday at 15:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @sageshilling, @mista-flo, @hongnizzle, @johnbillion 

Upcoming Meeting Schedule

The team discussed moving the regular meeting time to adjust for daylight savings time. It was agreed moving forward, the meeting will be taking place on Thursdays 15:00 UTC time as opposed to the current 14:00 UTC time. 

5.6 Remaining Tickets

#50972media_handle_sideload() does not allow $post_data to override – Currently owned by @sergey and set to reviewing, this ticketticket Created for both bug reports and feature development on the bug tracker. needs unit tests at the moment. @johnbillion mentioned that the functions aren’t very testable without refactoring, so the group agreed this ticket is a candidate to move to 5.7.

#41648Alignment issue on media-new.php when browse uploader screen is activePatchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. is ready to go and @antpb will review and commit. 

#39968Media Library deleting all items on the last page loses pagination/navigation buttons – This has been addressed by @mista-floand is ready for review. It was agreed that this was related to existing changes in 5.6 so it is safe to test and commit before the next betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. cycle.

#51396[Media upload.php] Switch back from grid to list mode reopen the modal. – This is a quick fix for an existing bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.. @mista-flo mentioned that this is not a critical bug so please chime in in the comments below if you have any thoughts on this fix being implemented in 5.6 or if it should wait for 5.7.

Props @antpb for proofreading and final review.

#media, #summary

Accessibility improvements to Media component in WordPress 5.5

WordPress 5.5 introduced several improvements in the accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) of the Media component.

Improvements in the accessibility of the status and error messages in the Image Editor

On previous WordPress versions on the Edit Media page, when activating the “Restore Image” button, a message was shown above the image while the Restore button itself disappears.

Since the button would have been focused at the time when activated by keyboard, this causes the keyboard focus position to be lost and reset to the top of the page.

The message itself is also not announced by screen readers, and may not be visible to screen magnification users if it appears outside their current view.

WordPress 5.5 improved the behavior of notices inside the Edit Media page with the followings:

  • Improves the focus management by moving focus to the notices, if any, or to the first “tabbable” element: this avoids a focus loss and helps Braille-only and screen magnification users to be aware of the messages.
  • Adds an ARIA role alert to all the notices.
  • Uses wp.a11y.speak() to announce messages to assistive technologyAssistive technology Assistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. https://en.wikipedia.org/wiki/Assistive_technology: this leads to all visual users seeing the messages while assistive technology users will get an audible message.
  • Uses wp.i18n for translatable strings in wp-admin/js/image-edit.js

Related TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker.: #47147.

Fix the Image Editor mismatching keyboard focus order and visual reading order

On the Edit Media page, the keyboard focus order and the visual reading
order were presented in a zig-zag pattern.

This was causing some accessibility issues for users who have a cognitive disability as they may be confused by an unexpected or illogical focus order.

WordPress 5.5 fixed that by swaping the DOM order of the two main columns within the adminadmin (and super admin) Image Editor.

See more details in the Trac ticket #47136 and the attached changeset.

Improve the appearance of image editor on small and medium screens

WordPress 5.5 added new CSS rules to improve the appearance of image editor on small and medium screens. The new rules prevent the main area of Edit Media screen from being pushed down too far.

See the related ticket on Trac: #47136.

Props to @afercia for proofreading.

#5-5, #accessibility, #dev-notes, #media

Media Meeting Recap – June 25, 2020

Here’s a summary of the #core-media chat from June 25, 2020. Weekly media meetings happen on Thursdays at 14:00 UTC; see the full transcript here, in the Make WordPress Slack.

Attendees: @paaljoachim, @joemcgill, @desrosj, @chaion07, @cdog, @sageshilling, @antpb, @afercia, @swissspidy, @JJJ, @pbiron

Discuss Media REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. endpoints

The below post was discussed as an effort to bring visibility to the changes in image editing. Please take a moment if you haven’t to consider any Media implications of the changes. Many great ideas have been documented in the post.

Ticketticket Created for both bug reports and feature development on the bug tracker. #50105: Remove infinite scrolling behavior from the Media grid

#50105 was discussed and there is some help needed testing the most recent patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. to remove the infinite scrolling behavior in Media grid. Separately from this issue, a new bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. was found that needs some attention. The unintended consequence of the changes were that the number of items counted for the “Load More” button are incorrect as they calculate images that do not render. The ticket at minimum before 5.5 needs a more accurate count to better represent what is left to load. An issue to track this can be found in #50410.

Media Meeting Continued June 26 at 14:00 UTC

One topic that did not get a chance to be discussed was #16020 “Upload custom avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. for user in Dashboard” which was recently commented with a recommendation to remove from the 5.5 scope. Given the timeframe and wide range of complexities, this needs some time to:

  1. Discuss tomorrow at 14:00 UTC to determine next steps
  2. Collaborate with the Privacy team to ensure this is done in the best way for everyone and in a featured 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.

Please feel free to continue the momentum of this issue join in on the discussion tomorrow.

#core, #core-accessibility, #core-media, #media, #summary

Media Chat Agenda: 24th June, 2020

This is the agenda for the weekly Media Meeting scheduled for Thursday, June 24, 2020, 04:00 PM GMT+2.

This meeting is held in the #core-media channel in Making 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/..

– Topics to Discuss

Implications of the proposed experimental REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. endpoints for image editing: https://make.wordpress.org/core/2020/06/14/shipping-experimental-endpoints-in-core-rest-api-meeting-summary-june-11-2020/

#50105: Remove infinite scrolling behavior from the Media grid – Discuss next steps. Seems that this could use testing and dev-notes. Let’s see how we can help here!

Custom AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. feedback that @cdog provided last week:
https://make.wordpress.org/core/2020/06/18/media-chat-agenda-18th-june-2020/#comment-38779  

Discuss support for WebP – @joemcgill said in #core-media, “Given the announcement yesterday that Safari is about to support WebP, I’m wondering how we might go about supporting the format in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., revisiting this discussion: https://wordpress.slack.com/archives/C02SX62S6/p1581005513097600

Even if you cannot make the meeting, you are encouraged to share anything relevant for the discussion. If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #media

Media Chat Agenda: 18th June, 2020

This is the agenda for the weekly Media Meeting scheduled for Thursday, June 18, 2020, 04:00 PM GMT+2.

This meeting is held in the #core-media channel in Making 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/..

– Updates
    – To be determined.
– Topics to Discuss
    – Custom AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. Uploader: https://core.trac.wordpress.org/ticket/16020
    – Gallery 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.https://github.com/WordPress/gutenberg/issues/11436

Even if you cannot make the meeting, you are encouraged to share anything relevant for the discussion. If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #core-media, #media

Media Upload Request Flow in WordPress 5.3

After a couple of questions from hosting companies about how to detect how well uploads are working at the server/request level, I thought further documentation would help.

Here is a walkthrough of the request flow for media uploads, both before and after WordPress 5.3. Hopefully this will help with troubleshooting and debugging uploads on your infrastructure or sites!

Before WordPress 5.3

Before WordPress 5.3, uploads had to complete during a single HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. POST request to .../wp-admin/async-upload.php or to the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. with the media endpoint (.../wp-json/wp/v2/media/).

The 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. editor uses the REST API to upload, while any uploads outside the block editor (or using the popup Media Modal) use async-upload.php.

When uploads failed, they would return whatever HTTP error the server is set up to give (usually in the 5xx range). This is usually due to timeout or resource exhaustion (like running out of memory) reasons.

WordPress 5.3+

In WordPress 5.3+, uploads have been decoupled from a single request to allow for resuming. Now, when an upload returns a 5xx error, there can be up to 5 followup requests.

This is accomplished differently depending on whether async-upload.php or the REST API are used.

Legacy Uploads

Outside of the REST API, the upload happens first with a request to async-upload.php, just like before 5.3.

If it fails, a request is made to admin-ajax.php with form-data containing action: media-create-image-subsizes and attachment_id: #### to attempt to complete the action.

If all retry attempts fail, the last request to admin-ajax.php has _wp_upload_failed_cleanup: true in form-data and attempts a cleanup. This deletes the the attachment post, the uploaded file, and any intermediate sizes that were created. Then, an error message is shown to users advising them to scale down the image and try uploading again.

REST API Uploads

When using the REST API, the initial request is to .../wp-json/wp/v2/media?_locale=user, and retry requests are to .../wp-json/wp/v2/media/####/post-process?_locale=user (where #### is the attachment post ID).

If all attempts to resume post-processing fail with HTTP 5xx errors, the last is a standard “delete attachment” request, sent to .../wp-json/wp/v2/media/####?force=true&_locale=user with X-HTTP-Method-Override: DELETE 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.. It performs the same cleanup as described for the admin-ajax.php upload method.

Hopefully this helps in understanding how uploads work! If you have any questions, please ask in the comments for clarification.

Thanks to @azaozz for helping write this post!

+make.wordpress.org/hosting

#5-3, #dev-notes, #media