WordPress / gutenberg

The Block Editor project for WordPress and beyond. Plugin is available from the official repository.
https://wordpress.org/gutenberg/
Other
10.46k stars 4.18k forks source link

Document structure and stats do not consistently process synced patterns (aka reusable blocks) #33079

Open mrwweb opened 3 years ago

mrwweb commented 3 years ago

Preface: This behaves like a regression for the fix that closed #12042 and #11744.

Description

Step-by-step reproduction instructions

  1. Make a new page
  2. Put some content on the page including multiple paragraphs and headings
  3. Note the Document Outline
  4. Turn at least one heading and paragraph of that content into a reusable block
  5. Note the change to the Document Outline

Expected behaviour

Document Outline reflects entire page content regardless of whether it includes a reusable block.

Actual behaviour

Document outline, word count, and character count exclude content in reusable blocks

Screenshots

Page content with four headings List view of page showing two headings on page and two headings in a reusable block Document Outline showing incorrect word, character, and outline. Showing correct heading and block count

WordPress information

Device information

kathrynwp commented 2 years ago

I can still replicate this with:

WordPress 6.0.1 No plugins active

Initial Document Outline

Add_New_Page_‹_Self-hosted_Test_—_WordPress

Outline After One Heading & One Paragraph made into a Reusable Block

Add_New_Page_‹_Self-hosted_Test_—_WordPress

cbirdsong commented 1 year ago

I can confirm this is still an issue in Wordpress 6.3.

jordesign commented 11 months ago

Confirming this is still true testing WP6.4 RC2 as well - headings and text within Synced patterns are not registered in the outline.

afercia commented 8 months ago

This was also reported in https://github.com/WordPress/gutenberg/issues/51909, for the sunced patterns.

The word and characters count is still incorrect on current trunk version 17.7.0. See screenshot below.

Removing the Low priority label as I think this should be fixed soon. Introducing features that break other existing features and keeping showing users very evident wrong inforation in the user interface is less than ideal. I'm not sure providing users with broken functionality helps with increasing trust with the editor.

Screenshot 2024-02-20 at 09 22 36

afercia commented 8 months ago

After some quick testing, seems that on current trunk headings within synced patterns are now correctly parsed and added in the document outline. See animated GIF below, where after page refresh the synced pattern is fetched and when loaded the additional heading within the pattern is added to the document outline.

Some more extended testing would be welcome.

synced pattern outline

afercia commented 4 months ago

Update: testing on latest trunk 18.6.0-rc.1 this appears to still (again?) be a problem. Headings within Synced Patterens aren't included in the document outline. Which makes this feature visibly not fully functional and it's in this state since a while. I would appreciate this issue to get some more priority as it's a buggy functionality visible to all users.

In the GIF below:

headings within patterns

mrwweb commented 4 months ago

Which makes this feature visibly not fully functional

💯 This feels like a serious bug and one that hasn't been addressed for years now. It should ideally be addressed holistically to resolve both this issue and #5037 at the same time.

It seems like the Document Outline needs to reflect the actual post content so the heading outline includes synced patterns as well as headings in custom blocks. Without that, the heading outline is frequently wrong, potentially providing an accessibility false positive in the outline.

afercia commented 4 months ago

It seems like the Document Outline needs to reflect the actual post content so the heading outline includes synced patterns as well as headings in custom blocks.

I'd totally agree this feature needs to be rethinked. I'm not sure it can be based on the block type. To provide a fully correct outline, this feature needs to be aware of all the headings that are actually rendered, even if they come from, for example, shortcodes (besids patterns, custom blocks, stc.).