Fix word-wrapping behavior of machine names in UI tables

Created on 17 June 2024, 6 months ago
Updated 6 July 2024, 6 months ago

Problem/Motivation

Discovered while working on Show machine name in "manage form display" and "manage display" table row Needs review .

Steps to reproduce

  1. Install Standard and enable the Media module.
  2. Go to /admin/structure/media/manage/remote_video/fields.
  3. Shrink your browser tab gradually until the "Machine name" column starts to wrap, but not far enough to hit the breakpoint where it will be hidden.
  4. Notice that the machine name is wrapped on several lines with hyphens, which is confusing and makes it look like hyphens are a part of the machine name.

Proposed resolution

  • Fix the CSS for this column (on Manage fields, Manage display, and Manage form display following Show machine name in "manage form display" and "manage display" table row Needs review ; possibly other places) so that it does not wrap with hyphens.
  • Machine names of a reasonable length (TBD) should not break, and the column should be hidden when the window is too small to display the longest (reasonable-length) machine name.
  • Exceptionally long machine names should be truncated, possibly with an ellipsis, or wrapped without hyphens, or another strategy (research the problem of how long string literals are handled elsewhere in the UI; there are some related issues from the past year or so).

Remaining tasks

TBD

User interface changes

Hopefully better wrapping behavior for machine name columns.

API changes

Probably not.

Data model changes

N/A

Release notes snippet

N/A

🐛 Bug report
Status

Active

Version

11.0 🔥

Component
Field UI 

Last updated 4 days ago

Created by

🇺🇸United States xjm

Live updates comments and jobs are added and updated live.
  • Usability

    Makes Drupal easier to use. Preferred over UX, D7UX, etc.

Sign in to follow issues

Comments & Activities

  • Issue created by @xjm
  • 🇫🇮Finland simohell

    I think we should expand the scope to include also the Label column.

    The label column does not break lines at all while the machine name which needs to be an exact reference does. It is not common to have very long words in labels, but in some languages and some edge cases there may be fairly long words.

    The text seem to jus inherit hyphens: auto from body.
    word-break property seems no to be set at all.

    For the machine names we would want to have them readable as is an also copy them for pasting elsewhere. It is a common use case that the start of the machine name is the same for several fields and the end is significant. This speaks against having an ellipses. Thus I suggest adding

    word-break: break-word;
    hyphens: none;
    

    for the machine name (it's always a single word anyway)

    For the label I think it would make sense to have word-break: break-word; but keeping the default auto-hyphens.

    I wonder if it would merit to have a separate class to handle the unhyphened breaking words so that it would be reusable where need arises? Or would that be an overkill?

  • 🇫🇮Finland simohell

    Usability review

    We discussed this issue at 📌 Drupal Usability Meeting 2024-07-05 Needs work . That issue will have a link to a recording of the meeting. For the record, the attendees at today's usability meeting were @benjifisher, @rachelh_design, @rkoller, @shaal, and @simohell.

    If you want more feedback from the usability team, a good way to reach out is in the #ux channel in Slack.

    We reached a consensus, that the best option for now, is to allow machine names to break word, but disable hyphenation.

    We recommend limiting the scope to this single change and leave the rest for existing functionality and rendering implemented by each browser. For future, in a much wider context, we could consider using for mobile/narrow viewport a structure different from html table to improve usability.

Production build 0.71.5 2024