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

Settings: Show message when Visual or Code editor are disabled #52737

Merged
merged 11 commits into from
Jul 31, 2023

Conversation

danielbachhuber
Copy link
Member

@danielbachhuber danielbachhuber commented Jul 18, 2023

Fixes #18351

What?

Shows a 'Visual editor is disabled.' message when the Visual or Code editor are disabled:

Visual editor disabled

image

Code editor disabled

image

Both editors available

image

Why?

While doing support last week, I came across a user who was confused as to why they couldn't get back to the Visual editor. As it turns out, they had checked the 'Disable the visual editor when writing' setting in their profile.

When we remove an entire UI element, it can be confusing as to why it's missing. It's better to have some affordance that points them to the right direction.

Additionally, allowing the user to disable/enable the visual editor from this menu opens a UX can of worms. I decided to keep things simple by only adding a message.

How?

For this particular condition, returns a message from <ModeSwitcher> instead of null.

Testing Instructions

Disabling the Visual editor

  1. Navigate to /wp-admin/profile.php.
  2. Check the 'Disable the visual editor when writing' checkbox and hit save.
  3. Navigate back to the Block Editor.
  4. Verify the message appears as expected in the triple dot menu.

Disabling the Code editor

Introduced in #14932 but no user-facing option.

  1. Add the following code snippet to a mu-plugin:
add_filter(
	'block_editor_settings_all',
	function( $settings ) {
		$settings['codeEditingEnabled'] = false;
		return $settings;
	}
);
  1. Navigate to the Block Editor.
  2. Verify the message appears as expected in the triple dot menu.

@danielbachhuber danielbachhuber added the Needs Design Feedback Needs general design feedback. label Jul 18, 2023
@danielbachhuber danielbachhuber self-assigned this Jul 18, 2023
@danielbachhuber danielbachhuber added [Type] Enhancement A suggestion for improvement. General Interface Parts of the UI which don't fall neatly under other labels. labels Jul 18, 2023
@github-actions
Copy link

github-actions bot commented Jul 18, 2023

Size Change: +408 B (0%)

Total Size: 1.44 MB

Filename Size Change
build/block-editor/index.min.js 210 kB -228 B (0%)
build/block-editor/style-rtl.css 14.8 kB +25 B (0%)
build/block-editor/style.css 14.8 kB +29 B (0%)
build/block-library/blocks/social-links/style-rtl.css 1.44 kB +12 B (+1%)
build/block-library/blocks/social-links/style.css 1.43 kB +11 B (+1%)
build/block-library/blocks/video/style-rtl.css 185 B +11 B (+6%) 🔍
build/block-library/blocks/video/style.css 185 B +11 B (+6%) 🔍
build/block-library/index.min.js 202 kB +370 B (0%)
build/block-library/style-rtl.css 13.7 kB +15 B (0%)
build/block-library/style.css 13.8 kB +15 B (0%)
build/blocks/index.min.js 51 kB -18 B (0%)
build/commands/index.min.js 15.1 kB +7 B (0%)
build/components/index.min.js 241 kB +6 B (0%)
build/core-commands/index.min.js 2.44 kB -2 B (0%)
build/edit-post/index.min.js 35.6 kB +291 B (+1%)
build/edit-post/style-rtl.css 7.58 kB +2 B (0%)
build/edit-post/style.css 7.58 kB +3 B (0%)
build/edit-site/index.min.js 89.5 kB -124 B (0%)
build/edit-site/style-rtl.css 13.2 kB +10 B (0%)
build/edit-site/style.css 13.2 kB +10 B (0%)
build/editor/index.min.js 45.4 kB -22 B (0%)
build/format-library/index.min.js 7.59 kB -26 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.28 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 451 B
build/block-directory/index.min.js 6.99 kB
build/block-directory/style-rtl.css 1.02 kB
build/block-directory/style.css 1.02 kB
build/block-editor/content-rtl.css 4.26 kB
build/block-editor/content.css 4.25 kB
build/block-editor/default-editor-styles-rtl.css 381 B
build/block-editor/default-editor-styles.css 381 B
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 584 B
build/block-library/blocks/button/editor.css 582 B
build/block-library/blocks/button/style-rtl.css 624 B
build/block-library/blocks/button/style.css 623 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 409 B
build/block-library/blocks/columns/style.css 409 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.61 kB
build/block-library/blocks/cover/style.css 1.6 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 178 B
build/block-library/blocks/details/style.css 178 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 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 269 B
build/block-library/blocks/file/style.css 270 B
build/block-library/blocks/file/view-interactivity.min.js 317 B
build/block-library/blocks/file/view.min.js 375 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/freeform/editor-rtl.css 2.58 kB
build/block-library/blocks/freeform/editor.css 2.58 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.53 kB
build/block-library/blocks/gallery/style.css 1.53 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 654 B
build/block-library/blocks/group/editor.css 654 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 76 B
build/block-library/blocks/heading/style.css 76 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 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 1.42 kB
build/block-library/blocks/image/style.css 1.42 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-interactivity.min.js 1.46 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 507 B
build/block-library/blocks/media-text/style.css 505 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 712 B
build/block-library/blocks/navigation-link/editor.css 711 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 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.23 kB
build/block-library/blocks/navigation/style.css 2.22 kB
build/block-library/blocks/navigation/view-interactivity.min.js 988 B
build/block-library/blocks/navigation/view-modal.min.js 2.85 kB
build/block-library/blocks/navigation/view.min.js 469 B
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 401 B
build/block-library/blocks/page-list/editor.css 401 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 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 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-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 588 B
build/block-library/blocks/post-featured-image/editor.css 586 B
build/block-library/blocks/post-featured-image/style-rtl.css 319 B
build/block-library/blocks/post-featured-image/style.css 319 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/style.css 153 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 314 B
build/block-library/blocks/post-template/style.css 314 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 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 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 302 B
build/block-library/blocks/query-pagination/style.css 299 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 450 B
build/block-library/blocks/query/editor.css 449 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 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 132 B
build/block-library/blocks/read-more/style.css 132 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 178 B
build/block-library/blocks/search/editor.css 178 B
build/block-library/blocks/search/style-rtl.css 587 B
build/block-library/blocks/search/style.css 584 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 631 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 234 B
build/block-library/blocks/separator/style.css 234 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 203 B
build/block-library/blocks/site-logo/style.css 203 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 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/spacer/editor-rtl.css 348 B
build/block-library/blocks/spacer/editor.css 348 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 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 645 B
build/block-library/blocks/table/style.css 644 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/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.1 kB
build/block-library/common.css 1.1 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.1 kB
build/block-library/editor.css 12.1 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/theme-rtl.css 686 B
build/block-library/theme.css 691 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/style-rtl.css 835 B
build/commands/style.css 834 B
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.1 kB
build/core-data/index.min.js 16.4 kB
build/customize-widgets/index.min.js 12 kB
build/customize-widgets/style-rtl.css 1.46 kB
build/customize-widgets/style.css 1.45 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.28 kB
build/date/index.min.js 17.8 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.63 kB
build/edit-post/classic-rtl.css 544 B
build/edit-post/classic.css 545 B
build/edit-widgets/index.min.js 16.9 kB
build/edit-widgets/style-rtl.css 4.52 kB
build/edit-widgets/style.css 4.52 kB
build/editor/style-rtl.css 3.54 kB
build/editor/style.css 3.53 kB
build/element/index.min.js 4.8 kB
build/escape-html/index.min.js 537 B
build/format-library/style-rtl.css 554 B
build/format-library/style.css 553 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/index.min.js 10.5 kB
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.64 kB
build/keycodes/index.min.js 1.84 kB
build/list-reusable-blocks/index.min.js 2.18 kB
build/list-reusable-blocks/style-rtl.css 836 B
build/list-reusable-blocks/style.css 836 B
build/media-utils/index.min.js 2.9 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 1.99 kB
build/nux/style-rtl.css 735 B
build/nux/style.css 732 B
build/plugins/index.min.js 1.77 kB
build/preferences-persistence/index.min.js 1.84 kB
build/preferences/index.min.js 1.24 kB
build/primitives/index.min.js 943 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 951 B
build/react-i18n/index.min.js 615 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.71 kB
build/reusable-blocks/style-rtl.css 243 B
build/reusable-blocks/style.css 243 B
build/rich-text/index.min.js 11 kB
build/router/index.min.js 1.77 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 1.83 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.57 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 958 B
build/warning/index.min.js 268 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.15 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

@github-actions
Copy link

github-actions bot commented Jul 18, 2023

Flaky tests detected in 6e2744c.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/5693420048
📝 Reported issues:

@jameskoster
Copy link
Contributor

The notice helps, but my first thought is that is seems unnecessarily disruptive to force the user out of the editor to update this setting.

My second thought is that the option feels a bit heavy-handed. Is there really a need for a personal preference that disables the visual editor?

A different way to frame it could be to rename the option: "Make code editing the default writing mode". Then the option to toggle the visual editor could remain in the editor options.

What do you think?

@danielbachhuber
Copy link
Member Author

The notice helps, but my first thought is that is seems unnecessarily disruptive to force the user out of the editor to update this setting.

My second thought is that the option feels a bit heavy-handed. Is there really a need for a personal preference that disables the visual editor?

@jameskoster Personally, I think it's a UX rabbit hole to try to address these issues, particularly because only a few users will ever see this state.

Copy link
Contributor

@draganescu draganescu left a comment

Choose a reason for hiding this comment

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

We should not show a notice in the menu. Maybe instead of not showing the whole group the ModeSwitcher could instead show a disabled menu option for Visual editor and instruct in the menu item choice info that to enable it the user should enable visual editing in their profile.

@jameskoster
Copy link
Contributor

instruct in the menu item choice info that to enable it the user should enable visual editing in their profile.

This seems unnecessarily long-winded. If there's intent to edit visually then ideally the user shouldn't have to jump through hoops to do so. They should be able to toggle right there.

This is why I suggest updating the option to be about making the code editor the default. It's a simple label change that wont affect the experience for anyone who has toggled it on. But it also means the "Visual editor" option can appear in the editor tools, instead of being entirely disabled.

Another benefit to this approach is that it 'fixes' a number of issues with the experience currently. For example with visual editing disabled:

  • Features like List View and the Block Inspector are accessible, but feel broken.
  • Tool switching (Edit / Select) does nothing.
  • Options like Distraction Free, Spotlight, Top Toolbar are available, despite having no effect on the code editor.
  • Device previews do nothing.

@danielbachhuber
Copy link
Member Author

danielbachhuber commented Jul 19, 2023

This is why I suggest updating the option to be about making the code editor the default. It's a simple label change that wont affect the experience for anyone who has toggled it on. But it also means the "Visual editor" option can appear in the editor tools, instead of being entirely disabled.

@jameskoster Oh, I think I see what you're saying. It would be great to have a visual depiction of this, though. Would you be able to provide a few mockups? Also, should the user be able to 'Disable the visual editor when writing' again? Lastly, because "Disable the code editor" doesn't have any user-facing options (it can only be done with a filter), can you provide a mockup for that scenario?

If there's intent to edit visually then ideally the user shouldn't have to jump through hoops to do so. They should be able to toggle right there.

@draganescu Any sense of how many things might break if we flip the isRichEditingEnabled bit to true without reloading the entire page?

@jameskoster
Copy link
Contributor

It would be great to have a visual depiction of this

Sure thing. So instead of the "Disable the visual editor when writing" option on profile.php we'd have something like:

Screenshot 2023-07-19 at 16 43 27

When that option is true, opening an entity in the post editor would always drop you into the code editor, but you'd still be able to toggle the visual editor via the editor tool menu:

Screenshot 2023-07-19 at 16 45 43

I hope that makes sense. I may very well be over-simplifying things, in which case I can only apologise 🙏

@danielbachhuber
Copy link
Member Author

danielbachhuber commented Jul 19, 2023

@jameskoster Hm, I think changing the behavior of the 'Disable the visual editor when writing' setting is probably outside the scope of this PR...

Can you provide design direction on simply showing a message instead?

@draganescu
Copy link
Contributor

@jameskoster I imagine the change is way beyond a lanel given it's meant to disable a feature?

Copy link
Member

@tyxla tyxla left a comment

Choose a reason for hiding this comment

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

A design comment: I find the lack of vertical alignment caused by the left border and spacing of the notice particularly eye-disturbing.

I also agree that it's not semantic to directly render a notice inside a menu group.

I wonder if we can just render a MenuItem with a disabled prop and add some additional styling to it that makes it clearer that it's disabled, and/or any other additional style you deem necessary to make it more notice-like?

@danielbachhuber
Copy link
Member Author

A design comment: I find the lack of vertical alignment caused by the left border and spacing of the notice particularly eye-disturbing.

Yep. For clarity, I implemented a <Notice> simply to start the conversation, knowing full and well it was the wrong component to use.

@jameskoster
Copy link
Contributor

As discussed notices should be avoided in menus. We added one to the ellipsis menu in the block toolbar recently which had to be reverted after accessibility feedback.

We should also avoid any custom styling for one-off use cases like this.

To keep the PR as small as possible, I'd lean towards including the "Visual editor" menu item in a disabled state, potentially with a hint about how to re-enable the option:

Screenshot 2023-07-21 at 13 32 04

But it's not ideal:

  • We'll likely run into a11y issues around color contrast on the hint.
  • It forces the user to exit the editor to enable visual editing which is quite disruptive.

This will likely be considered out of scope, but the only other option I can think of would be to include an "Enable visual editor" button which, when clicked would switch editing modes and update the "Disable the visual editor when writing" preference simultaneously. This would produce the most seamless UX for re-enabling visual editing.

@danielbachhuber
Copy link
Member Author

Thanks @jameskoster !

We'll likely run into a11y issues around color contrast on the hint.

What do you think about italicizing the text to indicate disabled state? Is there some other visual approach we could use?

@jameskoster
Copy link
Contributor

The styles for the disabled state are baked into the Button component. I don't think we should adjust them in this PR as it would affect all other button instances.

danielbachhuber and others added 2 commits July 27, 2023 04:35
Co-authored-by: Marin Atanasov <8436925+tyxla@users.noreply.github.com>
@danielbachhuber
Copy link
Member Author

@tyxla Could you apply the remaining type changes and changelog entry? Something is fubar in my local environment, and I'm not sure how long it will take to sort out.

@tyxla
Copy link
Member

tyxla commented Jul 28, 2023

@tyxla Could you apply the remaining type changes and changelog entry? Something is fubar in my local environment, and I'm not sure how long it will take to sort out.

Happy to do it, but won't get to it before next week.

@danielbachhuber
Copy link
Member Author

@tyxla I managed to sort through my local environment issues and have applied your requested changes.

Copy link
Member

@tyxla tyxla left a comment

Choose a reason for hiding this comment

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

This looks good to me 👍 🚀 Nice work!

I'm formally not approving since there were other folks who requested changes, and I prefer to let them check it before approving.

@danielbachhuber
Copy link
Member Author

@jameskoster @draganescu Want to give it another look?

@jameskoster
Copy link
Contributor

The changes around the visual editor option are good ✅

I'm not convinced the "Code editor is disabled for this site." help text is very helpful. It doesn't provide any more information beyond what is conveyed already be the disabled state.

@danielbachhuber
Copy link
Member Author

@jameskoster Is there some alternative you'd suggest?

@jameskoster
Copy link
Contributor

Simply omitting the help text works for me:

Screenshot 2023-07-31 at 15 04 24

In this case there may even be an argument to remove the "Editor" section of the menu altogether seeing as it serves no practical use.

@danielbachhuber
Copy link
Member Author

Simply omitting the help text works for me:

@jameskoster Cool, removed with 8214f40

In this case there may even be an argument to remove the "Editor" section of the menu altogether seeing as it serves no practical use.

This is covered in the "Why" of the PR description: When we remove an entire UI element, it can be confusing as to why it's missing. It's better to have some affordance that points them to the right direction.

@jameskoster
Copy link
Contributor

This is covered in the "Why" of the PR description: When we remove an entire UI element, it can be confusing as to why it's missing. It's better to have some affordance that points them to the right direction.

The issue I have is that merely disabling the menu item doesn't really "point people in the right direction". But I suppose it can trigger further investigation. Nonetheless it's not a detail we need to get hung up on in this PR. I think it's in a decent spot now! Thank you for entertaining my feedback :)

@danielbachhuber
Copy link
Member Author

Thanks @jameskoster !

The issue I have is that merely disabling the menu item doesn't really "point people in the right direction". But I suppose it can trigger further investigation.

Yep, this was my thought: give them enough of a breadcrumb to start taking action if they feel they need to.

Looks like this PR is blocked by @draganescu's review now..

@cbravobernal cbravobernal dismissed draganescu’s stale review July 31, 2023 21:06

Asked by @danielbachhuber as seems that @draganescu is AFK and cannot re-review.

@cbravobernal cbravobernal enabled auto-merge (squash) July 31, 2023 21:06
@cbravobernal cbravobernal merged commit f69f489 into trunk Jul 31, 2023
52 checks passed
@cbravobernal cbravobernal deleted the improve/visual-editor-disabled-message branch July 31, 2023 21:28
@github-actions github-actions bot added this to the Gutenberg 16.4 milestone Jul 31, 2023
@mikachan mikachan added the [Package] Components /packages/components label Aug 2, 2023
@femkreations femkreations added the Needs User Documentation Needs new user documentation label Sep 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
General Interface Parts of the UI which don't fall neatly under other labels. Needs Design Feedback Needs general design feedback. Needs User Documentation Needs new user documentation [Package] Components /packages/components [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Surface user's visual editor preferences into the post editor settings panel.
7 participants