Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce visual prominence of primary actions in table data views, and consolidate primary + secondary actions in ellipsis menu #59128

Merged
merged 6 commits into from
Mar 8, 2024

Conversation

jameskoster
Copy link
Contributor

@jameskoster jameskoster commented Feb 16, 2024

What?

  1. Reduce the permanent visual prominence of primary actions in table data views.
  2. Consolidate primary + secondary actions into the ellipsis menu

Why?

Permanently displaying the primary actions is quite noisy and adds a lot of repetition to the UI. Revealing them while focussing a specific row can better manage prominence.

The ellipsis button remains permanently visible so that users can intuit that actions exist at a glance.

Consolidating all actions into a single menu is helpful for orientation, and means we can use a single reference point for the right-click interaction (#59608).

How?

Primary actions are revealed using the same mechanics as the checkbox. That is; when a tr has is-hovered class, or has focus-within the actions appear. Secondary actions (via ellipsis menu) are permanently visible.

Testing Instructions

  • Open a data view such as Pages or Templates
  • Select Table layout
  • Observe that primary actions appear only when hovering a row, or when focus is within a row.
actions.mp4

Note: I'd say this is quite closely related to #59551. The placement of the Trash action in the menu seems a little odd. This would make more sense:

– Edit
– View
– Revisions
– Trash

Ideally these PR's are reviewed in tandem.

@jameskoster jameskoster added [Type] Enhancement A suggestion for improvement. Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta [Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond labels Feb 16, 2024
Copy link

github-actions bot commented Feb 16, 2024

Size Change: +169 B (0%)

Total Size: 1.71 MB

Filename Size Change
build/edit-site/index.min.js 216 kB +87 B (0%)
build/edit-site/style-rtl.css 15 kB +41 B (0%)
build/edit-site/style.css 15 kB +41 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.69 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.22 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.4 kB
build/block-editor/content.css 4.4 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 252 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 126 B
build/block-library/blocks/audio/theme.css 126 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 415 B
build/block-library/blocks/button/editor.css 414 B
build/block-library/blocks/button/style-rtl.css 627 B
build/block-library/blocks/button/style.css 626 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.69 kB
build/block-library/blocks/cover/style.css 1.68 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 322 B
build/block-library/blocks/embed/editor.css 322 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 126 B
build/block-library/blocks/embed/theme.css 126 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 227 B
build/block-library/blocks/form-input/editor.css 227 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 471 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 947 B
build/block-library/blocks/gallery/editor.css 952 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 647 B
build/block-library/blocks/group/editor.css 647 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 894 B
build/block-library/blocks/image/editor.css 893 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 126 B
build/block-library/blocks/image/theme.css 126 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 259 B
build/block-library/blocks/navigation-link/style.css 257 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 kB
build/block-library/blocks/navigation/view.min.js 1.02 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 354 B
build/block-library/blocks/pullquote/style.css 354 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 629 B
build/block-library/blocks/search/style.css 628 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 478 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 229 B
build/block-library/blocks/separator/style.css 229 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 754 B
build/block-library/blocks/site-logo/editor.css 754 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.48 kB
build/block-library/blocks/social-links/style.css 1.48 kB
build/block-library/blocks/spacer/editor-rtl.css 350 B
build/block-library/blocks/spacer/editor.css 350 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 146 B
build/block-library/blocks/table/theme.css 146 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 126 B
build/block-library/blocks/video/theme.css 126 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.4 kB
build/block-library/editor.css 12.3 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 217 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.8 kB
build/block-library/style.css 14.8 kB
build/block-library/theme-rtl.css 688 B
build/block-library/theme.css 693 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.8 kB
build/commands/index.min.js 15.6 kB
build/commands/style-rtl.css 935 B
build/commands/style.css 930 B
build/components/index.min.js 223 kB
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.6 kB
build/core-commands/index.min.js 2.77 kB
build/core-data/index.min.js 72.8 kB
build/customize-widgets/index.min.js 11.2 kB
build/customize-widgets/style-rtl.css 1.36 kB
build/customize-widgets/style.css 1.36 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.95 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 558 B
build/edit-post/classic.css 558 B
build/edit-post/index.min.js 24.2 kB
build/edit-post/style-rtl.css 5.58 kB
build/edit-post/style.css 5.57 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.17 kB
build/edit-widgets/style.css 4.16 kB
build/editor/index.min.js 63.7 kB
build/editor/style-rtl.css 5.34 kB
build/editor/style.css 5.33 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 7.89 kB
build/format-library/style-rtl.css 492 B
build/format-library/style.css 490 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.67 kB
build/interactivity/index.min.js 12.9 kB
build/interactivity/navigation.min.js 1.15 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 1.36 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.74 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 851 B
build/list-reusable-blocks/style.css 849 B
build/media-utils/index.min.js 2.9 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 2 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 742 B
build/patterns/index.min.js 5.67 kB
build/patterns/style-rtl.css 553 B
build/patterns/style.css 552 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.05 kB
build/preferences/index.min.js 2.82 kB
build/preferences/style-rtl.css 710 B
build/preferences/style.css 712 B
build/primitives/index.min.js 975 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.4 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.95 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.1 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.72 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.17 kB
build/widgets/style.css 1.17 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

@carolinan
Copy link
Contributor

How can we make sure it is still discoverable?
Is there a "welcome guide" on this updated interface?

Copy link

github-actions bot commented Feb 19, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: andrewhayward <andrewhayward@git.wordpress.org>
Co-authored-by: carolinan <poena@git.wordpress.org>
Co-authored-by: afercia <afercia@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@carolinan carolinan added the Needs Accessibility Feedback Need input from accessibility label Feb 19, 2024
@carolinan
Copy link
Contributor

carolinan commented Feb 19, 2024

Has there been any feedback from users about this interface being too cluttered?
I'm worried the change will make it more difficult to use.
For decisions like these it would be great to have some real test results...

How does this work for users of screen magnification software?
Without having any data to back this up, I believe that if you are hovering over anything in this interface, you are most likely to hover over the Title, as it is the most important and most prominent item.
In the wp_admin interface, the objects that show on hover are very close to the title.
Here the objects that show on hover are very far from what your are likely focusing your mouse and your sight on.

@afercia
Copy link
Contributor

afercia commented Feb 19, 2024

I'm not sure this proposed change helps usability and accessibility to get any better. Hiding content isn't the best way to make an user interface more usable. To me, the proposed change seems to aim to improve only the visuals, based on some subjective judgment, and doesn't help functionality. It seems to me that it prioritizes form over function, which is less than ideal IMHO.

I'd think we should go the opposite direction instead, at the point I wanted to create an issue to propose to make the checkboxes always visible instead of showing them only on hover or focus. I'm going to create that issue soon.

Besides that, I have to say that I'm uncomfortable with the process followed with this PR. I'm not sure a pull request is the right place to discuss process but I'd like to clarify why I'm uncomfortable with this. I'll try to discuss this point in more depth in a more appropriate place and time.

  1. This PR is not preceded by an issue. The contributing guidelines of the Gutenberg project (and I'd say also the process followed in Core since ages) state that: Non-trivial pull requests should be preceded by a related issue that defines the problem to solve and allows for discussion of the most appropriate solution before actually writing code. I think this is an essential point in any collaborative open source project. It's not the only PR without associated issue, there have been many such cases. Keeping ignoring this point doesn't encourage contribution and, honestly, is highly demotivating.
  2. This PR changes an important aspect of the user interface but no accessibility label was set on it. Thankfully, @carolinan added the 'Needs accessibility feedback' label a few hours ago. However, making a relevant change to the UI without asking for broad accessibility feedback isn't the best way to make sure the proposed change is inclusive.
  3. I see a few people have been pinged for a review of this PR including andrewhayward. Andrew is an excellent, trusted, and well respected accessibility specialist. However, I would like to remind everyone that contribution to WordPress is organized into teams. One of these teams is the Accessibility team. Not pinging the Accessibility team is, honestly, dismissive of the team's role and I perceive it as unfair. I'm assuming good intent but the perception of the process on this PR isn't great.
  4. This PR is marked as 'Enhancement'. It's also marked with the 'Backport to WP Beta/RC' label. I'm not sure any enhancement should be merged during Beta. Not to mention there's no agreement this is an actual enhancement, but my point is more about the process.

It's not my intent to blame the specific person who submitted this PR. As I mentioned above, there have been several cases of pull requests that didn't follow the established process. I'm reporting a general issue that I think needs to be discussed looking at the broader picture. I apologize in advance if anyone may feel personally targeted by my feedback but that's not my intent.

Copy link
Contributor

@andrewhayward andrewhayward left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has there been any feedback from users about this interface being too cluttered?
I'm worried the change will make it more difficult to use.

Just to echo @carolinan's thoughts, I'm not entirely sure as the motivation behind this is actually needed, or that it really improves things. Happy to discuss, regardless.

Aside from the various specific conceptual points brought up though, there are a couple of technical issues that we would need to resolve before advancing with this, should we do so.

A screen-grab showing table rows being hovered to reveal action components, with tooltips then appearing when those components are themselves hovered. The action components disappear again when the cursor is placed over the tooltip.

The various action components have associated tooltips, which themselves appear on hover. However, when hovering over the tooltips, the components then disappear. It's not quite the typical failure of SC 1.4.13 (Content on Hover or Focus), but it's a failure nevertheless!

A screen-grab showing table rows receiving focus to reveal action components, one of which being a menu button. When the menu is opened, the components disappear.

Similarly, when the "more actions" menu is activated, the action components disappear again. The illustration above shows only a keyboard focus failure, but the same issue applies with pointer users too.

@andrewhayward
Copy link
Contributor

Happened to be looking at Apple Podcasts, and noticed they only hide the primary actions, and reveal them on hover; the actions menu itself is always visible, and also contains the primary actions. Not quite the same paradigm, and not necessarily suggesting that just because someone else does it so should we, but food for thought, regardless.

A screen capture of Apple Podcasts, showing action items appearing on hover, before opening the always-visible action menu to expose a longer list of actions, including the separate primary actions.

@carolinan
Copy link
Contributor

Hi
is this PR still planned for 6.5? Kind reminder that RC1 is tomorrow, March 4. Perhaps the backport label should be removed?

@jameskoster jameskoster removed the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Mar 4, 2024
@jameskoster
Copy link
Contributor Author

@andrewhayward that pattern seems worth a try. It surfaces primary actions only when focussed on a specific row to manage prominence, and (hopefully) informs users that actions exist regardless, in a more minimal way.

@andrewhayward
Copy link
Contributor

Plays a bit weird at the moment because of where menus are rendered in the DOM, and how we're relying on native hover/focus.

Action buttons disappearing when dropdown menu opened

@jameskoster
Copy link
Contributor Author

You mean how the action buttons disappear when you engage the ellipsis menu? I think that weirdness also applies to the hover state.

As you alluded to, ideally an is-hovered class would be toggled, and persist when interacting with the menu. Then we could ensure the action buttons and styles remain visible.

@jameskoster
Copy link
Contributor Author

ideally an is-hovered class would be toggled, and persist when interacting with the menu.

I added this. It works a bit better now – the hover styles and primary action buttons remain visible when you interact with the ellipsis menu:

Screenshot 2024-03-04 at 16 27 56

@jameskoster jameskoster changed the title Reduce visual prominence of actions in table data views Reduce visual prominence of primary actions in table data views, and consolidate primary + secondary actions in ellipsis menu Mar 5, 2024
@jameskoster jameskoster requested a review from a team March 5, 2024 16:03
@t-hamano
Copy link
Contributor

t-hamano commented Mar 6, 2024

I think more discussion is needed as to what approach is best, but I would like to introduce two apps. We may be able to get some hints from these apps.

Google Drive

  • The ellipsis menu is always displayed.
  • The left button is only visible while hovering over a row.
google-drive.mp4

Dropbox

The left button and ellipsis menu are only visible while hovering over a row.

dropbox.mp4

@jasmussen
Copy link
Contributor

Since this PR is 6.6 bound, I think it would be a great way to unstick this conversation to actually land it, and have feedback trickle in from its usage in the plugin.

As is, this behavior is identical to what exists in Google Drive, and what has existed in WordPress for many years:

Screenshot 2024-03-06 at 09 18 52

@jameskoster
Copy link
Contributor Author

Yes this seems to be a common pattern:

  • Ellipsis menu contains the full list of actions.
  • The buttons that appear on row focus/hover are the most commonly-used, extracted from the ellipsis menu so they're accessible in a single click.

This is a little different to the original convention we installed, but given we want to surface actions on right-click down the road (#59608), I think this moves us in a better direction. It's also similar to the existing wp-admin lists as pointed out above, with added scalability.

@t-hamano
Copy link
Contributor

t-hamano commented Mar 7, 2024

One concern I have is that I don't know what primary actions are available for that item unless I hover over that row.

For example, on a Pages page, both "View" and "Move to Trash" actions are always visible for any item. The actions available for each item are unified, so it may not be a problem if it is hidden by default.

On the other hand, for example on a template page, the available actions change depending on the item's status. Sometimes there is no action, sometimes there is a reset or trash button. In this way, when the icon changes depending on the item's status, it is a little hesitant to hide the icon with the default.

9c61e7939e7578eac7293cd5a43ea6f4.mp4

@jameskoster
Copy link
Contributor Author

@t-hamano I'm inclined to say that's a separate issue which also exists (albeit to a slightly lesser extent) on trunk. It's arguably confusing that different templates have different action buttons, regardless of how they appear.

Solutions to that problem are perhaps best discussed in detail elsewhere, but options include; unifying the reset/delete actions, or making those secondary so all template actions live in the ellipsis menu.

@jasmussen
Copy link
Contributor

I also don't completely buy the argument that it's hard to know, both because this is an existing behavior in WordPress with the on-hover quick-actions, but also because every action you can take is consistently available in the ellipsis menu.

@andrewhayward
Copy link
Contributor

There are a couple of things we need to ensure we're aligned on, but otherwise I think it's worth moving ahead with this; we're more likely to get feedback if it's directly available to users, and this feels like one of those ones that we could go back and forth on all day.

  1. The "extras" menu should always be visible; only the "shortcut" actions are hidden. It should be clear that actions are available even without hover/focus, and a persistent menu goes a long way to achieving that.
  2. The "shortcut" actions should be (additionally) included in the "extras" menu. There needs to be one consistent place to find actions, and being able to cognitively target that menu means the top-level actions become secondary in importance; useful to have, but not essential for operation.

...this behavior is identical to what exists in Google Drive, what has existed in WordPress for many years

I'm always wary of copying patterns just because, but rightly or wrongly it's not uncommon. As @jasmussen points out, it already exists in WordPress, and this would actually be an improvement; while definitions of "perfect" vary, I'm all for small steps in the right direction.

@andrewhayward andrewhayward self-requested a review March 7, 2024 15:36
@jameskoster
Copy link
Contributor Author

Those points seem reasonable to me 👍

@andrewhayward
Copy link
Contributor

Those points seem reasonable to me 👍

If we're in agreement, I'm happy to proceed and iterate where necessary.

I'd think we should go the opposite direction instead, at the point I wanted to create an issue to propose to make the checkboxes always visible instead of showing them only on hover or focus.

@afercia I'm largely in agreement with #59175, and it's definitely a conversation we should continue there. As this is a slightly different scenario, would love your thoughts on the alignment points above (cc @carolinan).

@jameskoster
Copy link
Contributor Author

Just leaving a note to say we should follow-up to evaluate action order, and which should have single-click access. The menu order in this PR is a little odd (Trash is given more prominence than Edit). I'll pick that up in #59551.

@jameskoster jameskoster merged commit 47c22e7 into trunk Mar 8, 2024
59 checks passed
@jameskoster jameskoster deleted the update/table-actions-prominence branch March 8, 2024 10:39
@github-actions github-actions bot added this to the Gutenberg 18.0 milestone Mar 8, 2024
@afercia
Copy link
Contributor

afercia commented Mar 8, 2024

@andrewhayward late to the party, but if you ask me, I'd make everything always visible by default. If a 'ligher' UI is desirable, that should be optional. It's not uncommon in large applications that need to account for different needs to have layout options like 'detailed', 'compact' and so on. However, the default should be usable and accessible for everyone.
It's a broader topic, i know.

what has existed in WordPress for many years

That's not entirely accurate. In core, the 'view actions' in the List Tables are revealed on hover / focus for Posts, Pages, Users, etc. but for Plugins they're always visible and that's been the case since forever, I think. Mentioning it just to better clarify some statements in this conversation aren't entirely accurate.

@@ -168,10 +170,16 @@ export default function ItemActions( { item, actions, isCompact } ) {
icon={ moreVertical }
label={ __( 'Actions' ) }
disabled={ ! secondaryActions.length }
className="dataviews-view-table__all-actions-button"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We shouldn't use classnames for specific views in the generic component. I have opened a follow up PR for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond Needs Accessibility Feedback Need input from accessibility [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants