For Drupal 8.6, we shipped with an experimental media library that:
- Provides a nice visual interface for browsing through all the media items in your site
- Can be opened from a node form (or similar author-facing context) in order to visually select media items to reference in a field
- Provides a way to upload several media assets into Drupal, quickly enter metadata for them, and reference them in a field -- all without having to leave the page you're on
This is the roadmap issue for how we will get this module to "stable" status. The path to stable lies through this jungle of issues:
# Must-have
- #2964789: Document the Media Library module
- #3081587: Multilingual content is shown double in the media library view
- #3073734: Immediately delete a media's file when pressing 'Remove' in the media creation modal
- #3063216: Inaccessible Media entities still have rows generated for them in the Media Library view, containing form wrapper markup *and* the media label
- #2981105: Media Library can delete user customizations to the media view and therefore should modify the media view more intelligently
- #3072319: Determine the scope of default styling for embedded media (what belongs in Classy, Stable, etc.?)
- Prepared patches for:
- #3035994: Add a Media library views template to Seven theme to change to order of the views header and exposed filters. IMPORTANT. This one has special handling for the accessibility gate where we mark a stable module with a level-A WCAG focus order failure. See comment #126 in this issue, and comments #64-65 in #2981044: Unify the grid/table views of the media library.
- #2980769: Move Media Library styles into the Seven theme
- #3038489: Add a Media library views template to Seven theme to add wrapper around the grid rows
- #3082690: Mark Media Library as a stable core module
# Should-have
Accessibility
- Fix should-haves of #2988431: [Meta] Accessibility plan for Media Library Widget
- #2973140: Convey AJAX progress messages to assistive technology. (top priority!)
- #3081526: Add announcement after clicking 'Save and select' in the media library. (top priority!)
- #3076773: Edit Media button within WYSIWYG should include media label for screen readers (high priority)
- #3081523: Improve the focus behaviour after clicking 'Save and select' in the media library.
- #3037781: Accessibility problem with invisible buttons in AJAX dialogs
Usability
- The "chain" of issues that replace #2113931-253: File Field design update: Upload field.:
- #3078287: Constrain the width of aligned images, media, blockquotes etc to a max of 75%
- #3023806: Add "All" tab with all media items to the media library widget
- #3059955: When creating media in the media library, it is possible to overflow the number of items than allowed by the field
- #3023807: Override media fields from the reference field
- #3033960: After adding media, return the user to the media listing they started from
- #3034242: Improve wording of buttons in the media library
- #3034243: Improve selection text in Media Library
- #3034244: Add a cancel or back button to the media library
Other
- #3081233: The default display for new media types should only show the source field Release manager fave :)
- #3055648: Frequent random fail in \Drupal\Tests\media_library\FunctionalJavascript\MediaLibraryTest
- #3023809: Add a selection overview to the media library widget modal
- #2981105: Media Library can delete user customizations to the media view and therefore should modify the media view more intelligently
- #2987921: Use a custom widget or form alter for the media library upload form instead of CSS
- #2993187: Add a media library widget setting to only choose existing media
- #3003150: Media library causes validation errors when it is used in a required field of a nested form
- #3049943: Media library should not use js- prefixed CSS classes for styling
- #3050508: Media library loads front-end theme when invoked from settings tray
- #3063216: Inaccessible Media entities still have rows generated for them in the Media Library view, containing form wrapper markup *and* the media label
# Could-have
- #3026636: Allow AJAX links to replace a specific selector
- #2938121: Expose a local action to bulk upload media items
- #3065677: Create a media_library form element
- #2988223: Make the MediaLibraryUploadForm's image style configurable
- #3037666: Consider renaming the grid display of the media library
- #3041147: Preserve the selected items across multiple uses of the media library
- #3061783: Improve MediaLibraryState's dependency injection model
- #3079818: Expected the media library to be opened by an entity reference field
- #3023807: Override media fields from the reference field
- #3074863: Improve the UX of captioning in CKEditor
- #3074859: Add a button to remove an embedded media item from the editor
- #3072323: Add consistent default margins for left- or right-aligned widgets in CKEditor
- #3072317: CKEditor embedded media previews do not render with attached assets
- #3071713: Make error messages for embedded media themeable
- #3075593: Allow MediaEmbed filter to use data-langcode to set media translation
- #3083090: In the media library, announce the type of media being selected (opened as a follow-up to #3035331: Improve keyboard focus behaviour of vertical tabs in MediaLibraryWidget)
- #3073535: Allow only a subset of the media library to be exposed to CKEditor
# Questionable
- #2971209: Allow the user to choose a different view or view mode for the Media Library
- #2987675: The media library field widget should work without Javascript
# Triage needed
Data integrity and upgrade path
- #3076544: After updating `FieldConfig` entities, the old configuration is still being used: discovery bin needs to be manually cleared
- #3073901: Determine an upgrade path from CKEditor image button to media library *** This one seems important to me. We need a plan here, even if that plan ends up being "document and wontfix".
Performance and cacheability
Usability
- #3079818: Expected the media library to be opened by an entity reference field
- #3075527: Allow users to link embedded media entities in CKEditor
- #3081357: Media alignment mismatch between the WYSIWYG and rendered media -- drupalmedia.js shouldn't convert data-align properties when Filter Align disabled
- #3062375: Media library item loses focus when hovering over item's title
Other
Done
- #3074608: Optionally allow choosing a view mode for embedded media in EditorMediaDialog
- #3035331: Improve keyboard focus behaviour of vertical tabs in MediaLibraryWidget
- #2994702: Allow editors to alter embed-specific metadata, as well as `data-align` and `data-caption`
- #3055516: Notice: Undefined index: target_bundles when new reference media field created
- #2994699: Create a CKEditor plugin to select and embed a media item from the Media Library
- #2994696: Render embedded media items in CKEditor
- #2940029: Add an input filter to display embedded Media entities
- #3038254: Delegate media library access to the "thing" that opened the library
- #3035408: Identify purpose of vertical tabs in MediaLibraryWidget dialog for assistive tech users.
- #3060603: Live preview is broken when editing the media_library view
- #3044649: Delegate media library selection handling to the "thing" that opened the library
- #2990664: Media library does not work when Drupal is installed into a sub-directory
- #3038350: Deny access to all media library View Displays if there is no valid state object
- #2981895: Prevent already-selected media items from being chosen twice
- #3033442: Use 24 items per page for better responsive grid behavior
- #3038245: [PP-1] Don't allow all media types if no target bundle is configured
- #3033943: MediaLibraryWidget selected items count is not conveyed to assistive tech correctly
- #3033653: InvalidArgumentException when adding reference field without Media type
- #3023966: Remove unnecessary title attribute from show-row-weights button.
- #2989503: Add tests to prove that the media library widget works when target_bundles is NULL
- #2962110: Add the Media Library module to Drupal core
- #2962525: Create a field widget for the Media library module
- #2956368: MediaThumbnailFormatter produces unhelpful text alternative and title attributes for media thumbnails
- #3020707: Streamline buttons in the media library widget
- #3020716: Add vertical tabs style menu to media library
- #2988433: Automatically create and configure Media Library view and form displays
- #3024184: Make the tabbing order match the visual reading order in MediaLibraryWidget
- #3023802: Show media add form directly on media type tab in media library
- #2996029: Add oEmbed support to the media library
- #3033100: Media library field widget styles are broken on initial page load
- #3037766: Inconsistent margin/padding on media library vertical tabs.
- #3035434: Improve name of MediaLibraryWidget dialog
- #3035316: ‘Add media’ in MediaLibraryWidget should be a button, not a link
- #3037767: Improve responsive styling of grid items in the media library
- #3019150: Update/improve mockups and designs for the media library
- #3023797: Let users choose what to do after selecting and/or adding items in the media library
- #3016807: Improve refocus on submit buttons of Media Library Widget modals
- #3023801: Allow newly uploaded files to be deleted from the media library without saving them
- #3020907: Avoid horizontal scrollbar in media library dialog when using small viewports
- #3038241: Implement a tamper-proof hash for the media library state
- #3037668: Improve visual coherence of the media library
- #3035446: Inform assistive tech users about the outcome of using the MediaLibraryWidget dialog
- #3039829: Remove link to media item from media library view.
- #2994702: Allow editors to alter embed-specific metadata, as well as `data-align` and `data-caption`
- #3055048: Media Library insert doesn't show custom fields
- #2969678: Integrate Media Library with Content Moderation
- #3063343: Make MediaLibraryState implement CacheableDependencyInterface to remove the need for hardcoding a cache context