[wp-trac] [WordPress Trac] #57313: Adding a menu item without a link URL should not add a broken HTML a tag

WordPress Trac noreply at wordpress.org
Mon Dec 12 04:01:06 UTC 2022


#57313: Adding a menu item without a link URL should not add a broken HTML a tag
--------------------------+------------------------------
 Reporter:  cliffpaulick  |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Menus         |     Version:  6.1.1
 Severity:  normal        |  Resolution:
 Keywords:  dev-feedback  |     Focuses:
--------------------------+------------------------------

Comment (by cliffpaulick):

 Replying to [comment:1 costdev]:

 I tested with Twenty Twenty-One and all plugins disabled and there was
 less markup but the
 `a` tag remained.

 I then enabled Genesis child theme and the additional markup came through.

 Sorry for the errant report here, but hopefully some bug fixing or
 enhancement results of it. Thanks for your efforts.


 > Thanks for opening this ticket @cliffpaulick!
 >
 > Some info for those reading this ticket:
 > >If the `a` element has no `href` attribute, then the element represents
 a placeholder for where a link might otherwise have been placed, if it had
 been relevant, consisting of just the element's contents.
 > >
 > >The `target`, `download`, `ping`, `rel`, `hreflang`, `type`, and
 `referrerpolicy` attributes must be omitted if the `href` attribute is not
 present.
 > >
 > >**If the `itemprop` attribute is specified on an `a` element, then the
 `href` attribute must also be specified.**
 > (my emphasis)
 > Source: [https://html.spec.whatwg.org/#the-a-element HTML spec for <a>
 tag]
 >
 > - The link is invalid because it has an `itemprop` attribute, which
 requires an `href` attribute that isn't present.
 > - I don't see this being added by Core anywhere, so I assume it's being
 added by a plugin or theme. In this case, the plugin/theme is failing to
 check the `href` value to determine whether `itemprop` should be added. If
 this is a bundled theme, we should correct this behaviour. If this is a
 third party theme/plugin, a ticket should be raised in the support forum
 for the plugin/theme.
 >
 >
 > Aside from that, this is only possible because Core doesn't fully
 validate the `URL` field.
 >   - Currently, you can't add an empty URL via `Appearance > Menus` or
 via `Customize > Menus`.
 >   - However, on both screens, you can ''edit an existing link'' to
 remove the URL. i.e. Incomplete validation.
 >   - I think this should be the focus for discussion on this ticket.
 Should we add this missing validation?
 >
 > If there is a desire for Core to allow plain text menu items, this
 should be created as a separate `enhancement` ticket.
 >

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/57313#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list