Problem/Motivation
This issue is a follow-up for #3356894: Make field selection less overwhelming by introducing groups to refine the newly added field descriptions if wanted.
Steps to reproduce
- Visit the "Manage fields" tab for an entity type and bundle. (For example:
/admin/structure/types/manage/page/fieldsfor the Page content type.) - Use the "Create a new field" action link.
- Choose a type of field, such as Reference.
- This issue deals with the text in the resulting modal window that helps the site builder choose the correct field type.
Proposed resolution
We discussed the text for field-type descriptions during several Usability meetings, and we tracked our recommendation in a spreadsheet: https://docs.google.com/spreadsheets/d/1Lx7L40eRHotr5KQGn6au5WxQO3lFv19a.... There are a few common themes: use examples; replace "Ideal for" with "Recommended for"; use the bullet points (unordered lists) for differentiators. Most of the changes in MR !11153 are simple: they update the text, including updates to the automated tests as needed.
A few of the changes are worth explaining:
- Add an optional summary paragraph just above the label "Choose a field type". This requires adding the
getSummary()method toDrupal\Core\Field\FieldTypeCategoryInterfaceandDrupal\Core\Field\FieldTypeCategoryand some updates toFieldTypeCategoryManagerto support the summary and a change toDrupal\field_ui\Form\FieldStorageAddFormto use the summary. - Since
FieldStorageAddForm::buildForm()was already very long, move the part for listing all the field types in a selected group to the newprotectedmethodbuildGroupForm(). That change was done in a separate commit, so it can be reverted and moved to a follow-up issue if the refactoring makes it too hard to review the MR. - In order to get different text for each of the Reference types, add the optional
descriptionkey to the array returned byDrupal\Core\Field\PreconfiguredFieldUiOptionsInterface::getPreconfiguredOptions(). Provide a value for that key by implementinghook_field_ui_preconfigured_options_alter.
As an example of (1), the modal window for selecting a Selection list field now has the summary
Each list item has a Name, with limited formatting, and a Value. Values that are in use cannot be changed, since they are stored in the database. The Names can be edited later.
The field type examples use the format Name (Value): Name is displayed to the user, and Value is stored in the database.
See the screenshot in the User interface changes section below.
Remaining tasks
User interface changes
Before
The "Add field" modal (after Step 2 in the Steps to reproduce):

The "Add field: Reference" modal (after choosing "Reference" in Step 3 in the Steps to reproduce):

The "Add field: Selection list" modal (after choosing "Selection list" in Step 3 in the Steps to reproduce):

After
The "Add field" modal (after Step 2 in the Steps to reproduce):

The "Add field: Reference" modal (after choosing "Reference" in Step 3 in the Steps to reproduce):

The "Add field: Selection list" modal (after choosing "Selection list" in Step 3 in the Steps to reproduce):

API changes
Add the getSummary() method to Drupal\Core\Field\FieldTypeCategoryInterface. This is an API addition, and there is only one class that implements the interface.
Add the optional description key to the array returned by Drupal\Core\Field\PreconfiguredFieldUiOptionsInterface::getPreconfiguredOptions(). Since the return type is mixed[][], this does not really count as an API change.
Data model changes
None
Release notes snippet
Do we need one?
| Comment | File | Size | Author |
|---|---|---|---|
| #108 | selection_update.png | 92 KB | benjifisher |
| #108 | reference_update.png | 59.65 KB | benjifisher |
| #108 | add_field_update.png | 101.11 KB | benjifisher |
| #107 | reference-other-with-bullet.png | 60.67 KB | benjifisher |
| #107 | reference-other-no-bullet.png | 60.48 KB | benjifisher |
Issue fork drupal-3370326
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
- 3370326-refine-field-descriptions
changes, plain diff MR !11153
Comments
Comment #2
lauriiiComment #3
poker10 commentedI think that it would be good if we can consider the "File upload" group, which can be a bit confusing for users. The File and Image field types were separated for a long time, but now they are groupped together with a Label/Description that does not mention Images at all. I know that now there is also a Media field, which is preferred, but for example for migrating D7 users this concrete groupping can be a bit non-intuitive.
Comment #4
lauriiiThe file upload group was created based on a card sort exercise we ran earlier this year. The results we got from there were pretty clear that people tend to map both image uploads and file uploads together. That said, Media was a challenging one; some people listed it under reference and some people listed it under file upload. That's why we decided to move it to the main level to try to address this challenge.
One of the use cases we tested as part of the usability testing was image and media fields because we had similar concerns that it might not be intuitive. However, both existing and new users were able to find the fields and we didn't find any challenges with the current sorting so we decided to proceed with that.
Comment #5
lauriiiWe should decide also whether to use full stop for bullet points. This was raised as feedback in #3401464: Date range should be in the date_time category.
Comment #6
chris matthews commentedPlain text
Current: Text field that does not support markup.
Proposed: Text field without markup support.
Formatted text
Current: Text field with markup support and optional editor. ✅
Number
Current: Field to store number. I.e. id, price, or quantity.
Proposed: Field to store a number value.
Reference
Current: Field to reference other content. ✅
Media
Current: Field to reference media. Allows uploading and selecting from uploaded media.
Proposed: Field to reference media of any type.
Only if Media Library is enabled, which will not always be the case.
File upload
Current: Field to upload any type of files.
Proposed: Field to upload a file of any type.
Selection list =>> Select list
Current: Field to select from predefined options. ✅
Date and time
Current: Field to store date and time values. ✅
Boolean
Current: Field to store a true or false value. ✅
Comment
Current: This field manages configuration and presentation of comments on an entity.
Proposed: Field to manage the configuration and presentation of comments on an entity.
Email
Current: Field to store an email address. ✅
Link
Current: Stores a URL string, optional varchar link text, and optional blob of attributes to assemble a link.
Proposed: Field to store a URL string.
Telephone number =>> Telephone (as the 'Email' field is not 'Email address')
Current: This field stores a telephone number.
Proposed: Field to store a telephone number.
Comment #7
hudriI agree with #3, for me the images/file thing was a hard stop for some hours.
It was not very clear to me if image fields are references or uploads (and there is a bug in the UI (#3415799) right now that makes it undiscoverable through try & error clicking in the UI).
Comment #8
rkollerAfter the usability meeting #3388943: Drupal Usability Meeting 2023-09-29 I've started a Google sheet based on the discussions during the meeting, did some additional testing of my own, and discussed the matter at the Drupal Dojo Austin twice. But I haven't posted it yet because the draft wasn't anywhere near finished and I haven't found any time revisiting the issue since then. But used the time over the Global Contribution Weekend and the following days to get to a rough draft as well as write up this comment summarizing the outcome.
In regards of the question raised in #5, I would say it depends on the bullet points. If they are full sentences use the ending punctuation, in case they are no complete sentence then don't use the ending punctuation - that would be my rule of thumb.
As in case of the options bullet points should provide an easy to scan overview to the user. I would vote to go with the no complete sentence variant, therefore no periods at the end. And the goal should be to make the bullet points as concise and skim-able as possible imho.
About #3 and #7. I had a similar experience like @hudri, at one point I needed to test something in regards of images and had a really hard time figuring out that images are actual within
File upload- completely unexpected. Due to the termFileinFile uploadI haven't associated the group with images at all.And at first I also agreed with @lauriii in #4 that media is tricky to sort because it would fit into reference as well as file upload. But on second thought, and after investigating more into how
File,Image, andMediareference fields function, I now think there might be another option. MoveMediainto the currently calledFile uploadgroup. All three field types are reference fields (also see/admin/help/media) and all three provide the ability to upload an asset. In regards of the micro copyFile uploadwas closely linked semantically to theFileoption, the reasonImagewas unexpected for me to find there. By renamingFile uploadto the more generic termUploadit would wrap theFile,Image, andMediafield types nicely. And by referencing the termmediain the description of the groupUploadit would also be taken care of that the context forUploadclearly isMediarelated.The observations in regards of the microcopy:
Step 1 - Field type descriptions:
Choose a type of fieldcould be shortened toChoose a field typefieldshould ideally be avoided if possible since the overall context is already set by the page title.Step 2 - Field type options:
Choose an option belowis using directional language, instead simplyChoose an optioncould be used. TechnicallyChoose a field typewould be more accurate her as well?Text (formatted, long)becomesLong formatted. Or another option might be instead of removing the label outside the parenthesis to append it at the end so you would getLong formatted text. But the overall context is already set in the page title or dialog modal title so that "probably" would not the best choice and introduce another redundancy.Number (decimal)doesn't communicate in anywhere that the maximum precision is at 32 and scope at 10. You only get informed about that detail by an error message after you've tried to enter a bigger value on its field settings page. I've added a bullet point about that to theNumber (decimal)option in the draft. But it might be also a good idea to add that information to the descriptions for precision and scale on the field settings page as well in a follow up?File uploadandMediacurrently has two flaws. For one with #3397711: Move label and machine name fields to the field config edit form onlyFile uploadwill have three steps with the description on the second step. And in general that description would be way more useful to the user before making the decision ifFile uploadorMediais the right choice, not after the initial decision was drawn and the user already moved onto step 1. Perhaps it might make sense to remove the description from step 2 entirely. I've tried to spread the relevant information to the descriptions in step 1 and the descriptions for the corresponding options in step 2. Plus as noted in the other issue #3397711-16: Move label and machine name fields to the field config edit form it might make sense to add a description pointing to a to be created help topic providing an overview of all available field types and when to use which field type best on top of the page right before theChoose a type of field.Referenceoptions might be considered to be removed. For one none of the options has any information with bullet points. Each of the options only stands for a different preselected referenced entity on the field settings edit form. Aside that there is no real apparent difference between the four. Plus theOtheroption references the same preselected option thatContentalso does.ContentandOtherare practical identical configuration wise. And the termOtheris way too generic and meaningless. One option might be to at least renameOtherto something likeCustom. But the more reasonable approach might be to remove all fourReferenceoptions as initially suggested. Or is there a detail I've missed about thoseReferenceoptions?Selection listoptions are outdated, they are only suitable for the old UI that contained a textarea. The UI has fields in place instead now and the instructions for the old text area UI pattern therefore increase the cognitive load and create potential confusion how to apply those examples. In addition, in the current form the examples are challenging to skim and comprehend for screenreader users.The link to the aforementioned Google sheet is: https://docs.google.com/spreadsheets/d/1Lx7L40eRHotr5KQGn6au5WxQO3lFv19a...
Everyone with the link has editor permissions. I've created a sheet for each step. On top of each sheet there is the list of potential issues listed in this comment. For the first step the first two columns, for the second step the first column contains the current state of the micro copy. The columns right next to them contain suggestion. I've copied the suggestions in #6 by @chris-matthews into a dedicated column on the
Step 1 - Field type descriptionssheet. Having more than a single column for the draft has the advantage that you are able to spot any consistency and redundancy related issues easier across the spreadsheet, and having dedicated columns for the different suggestion makes it easier to get inspiration and iterate faster instead of getting the older version replaced on every iteration.And I've also added the issue to the shortlist for one of the next usability meetings. Last Friday we haven't had time to get to it unfortunately.
Comment #9
rkollerUsability review
We discussed this issue at #3417104: Drupal Usability Meeting 2024-02-02. That issue will have a link to a recording of the meeting.
For the record, the attendees at the usability meeting were @benjifisher, @duncancm, @rkoller, @shaal, @simohell, and @worldlinemine.
We've covered only
Step 1 - Field type descriptions<code> and agreed to iterate asynchronously on that step as well as do the same for the second step <code>Step 2 - Field type options. A few takeaways from the discussion about step 1:Step 1 - Field type descriptionsComment #10
rkollerOdd, I've uploaded the screenshots for Wix and Contentful already in the previous comment but somehow the two files weren't available in the files fieldset. And after posting only the wix.jpg got upload. Instead of editing the previous comment I'll add a new and add the images here as an addition to #3370326-9: Refine labels and descriptions for field types
Adding a new field in Wix:

Choose a field type in Contentful:

Comment #11
marcoscanoAdding related issues that cover part of the topic here, when we started this discussion in the realm of Media/File/Image fields and the confusion this generates:
#2862458: [META] Once media is enabled, having the File, Image and Media reference fields all listed is confusing
#2930446: [PP-1] Improve field description texts for fields provided by core
Also wanted to point out that a media field can be used for remote video content (a Youtube video for example). In this case, the "Upload" term isn't quite a good fit, IMO. On the other hand, some sites might have the option to store the videos "locally", instead of relying on a 3rd party service, in which case it would make sense to "upload" a video file into a media field.
Comment #12
rkollerChanged the parent issue to #3346539: [Plan] Improve field creation experience,which is still active, in contrast to #3356894: Make field selection less overwhelming by introducing groups which is closed and fixed. for a while now. otherwise this issue might slip through.
Comment #13
rkollerUsability review
We discussed this issue at #3481737: Drupal Usability Meeting 2024-10-25. The link to the recording of the meeting is https://youtu.be/yuaPVd6Lgv0. For the record, the attendees at the usability meeting were @avani.bhut, @benjifisher, @rkoller, @rosendofig, @shaal, @simohell, and @worldlinemine.
And we have discussed this issue another time at #3495184: Drupal Usability Meeting 2025-01-03. That issue will have a link to a recording of the meeting. For the record, the attendees at todays usability meeting were @benjifisher, @rkoller, and @simohell.
In both meetings we’ve continued the wordsmithing of the micro copy for the field type options in the second step of the field creation flow. The work in progress can be found in
column Cin the spreadsheet (https://docs.google.com/spreadsheets/d/1Lx7L40eRHotr5KQGn6au5WxQO3lFv19a...). We plan to continue reviewing the current draft found incolumn B/Din the upcoming meetings in case no other issues come up.Comment #14
benjifisherAt #3497184: Drupal Usability Meeting 2025-01-10, we continued work on the spreadsheet (see Comment #13). For the record, the attendees at the usability meeting were @benjifisher, @rkoller, and @simohell.
Comment #15
benjifisherWe continued the word-smithing at #3498619: Drupal Usability Meeting 2025-01-17: @aaronmchale, @benjifisher, @rkoller, @simohell, and @worldlinemine.
Comment #16
benjifisherWe continued the word-smithing at #3500411: Drupal Usability Meeting 2025-01-24: @benjifisher, @rkoller, @simohell, and @worldlinemine.
Comment #17
benjifisher@rkoller, @worldlinemine, and I continued the word-smithing at #3503484: Drupal Usability Meeting 2025-02-07.
Comment #19
rkollerThe draft of the MR is a work in progress, reflecting proposed changes we've discussed over the course of several ux meetings. The MR is not complete and ready for review yet - we plan to finalize the MR in the coming weeks. We've considered it helpful at this point being able to see all the changes in context. A few remarks:
Add fieldsacross all field types and field groups. #3386762: Use modals in field creation and field edit flow has to get in first for that. After that the proposed changes for the h1 on second step could be added as well.EntityReferenceItem.php. That way it is impossible to provide some sort of guidance to the user what the actual difference between the different reference options actually is and which option to pick in which scenario. So we probably need a separate issue to add the ability to provide individual descriptions for the different reference options.file uploadfield group currently has no description yet and is still using the pattern starting with "field to..." we've removed on the description for every other field type and field group. But the entire question how to deal with the media field type is out of the scope for this issue and complicates everything. @benjifisher already opened #3500553: Add media reference to the same field type group as file and image a few weeks back - the general discussion and work should happen there.Comment #20
benjifisherWe continued the discussion at #3505028: Drupal Usability Meeting 2025-02-14: @benjifisher, @rkoller, @simohell, and @worldlinemine.
It turns out that Selection List is more complicated that I anticipated.
Comment #21
benjifisherAt #3506740: Drupal Usability Meeting 2025-02-21, we discussed the text for Selection Lists: @aaronmchale, @benjifisher, @simohell, @worldlinemine.
Comment #22
benjifisherThere is already a MR for this issue, so I am setting the status to NW.
I was afraid that getting different messages on the various Entity Reference fields would be difficult, but it is actually pretty easy. I added a commit. Now, we just have to decide on what text to use. Personally, I think none of the options should have description text except for Other.
Comment #23
benjifisherWe discussed the text for the Date and Time option at #3508130: Drupal Usability Meeting 2025-02-28: @benjifisher, @rkoller, @simohell, and @worldlinemine.
Comment #24
benjifisherI rebased the MR. The only conflict was from #3497410: Fix DrupalPractice.Objects.GlobalFunction in hooks, which replaced
t()with$this->t().Comment #25
benjifisher@rkoller:
On Slack, I said
I was wrong. It is more complicated than that.
I just pushed a commit that implements the Usability team's recommendations for reference fields. I mostly followed the example of
hook_field_ui_preconfigured_options_alter()incore/modules/field/field.api.php.Comment #26
rkollerthank you! that is definitely beyond my skill level to figure out on my own :D will add the rest of the strings tomorrow. need to get some sleep first.
Comment #27
rkollerI've pushed the remaining changes we've discussed over the course of the last few weeks. The are still strings on the google sheet that still need to go in:
Each list item has a Name, with limited formatting, and a Value. Values that are in use cannot be changed, since they are stored in the database. The Names can be edited later.A few more details about the current state i've noticed applying the changes and going through the interface again:
plain textthe labels weretext(plain)andtext(plain, long), so short was first and the more complex second. with the new labelsshort textandlong text,long textcomes first.short textstates that text fields are oneliners whilelong textjust says it uses text areas for input instead. it might be reasonable to clearly communicated that text areas are multi-line?otherreference field? it looks odd without any.Comment #28
rkollerThe MR needs a rebase after #3386762: Use modals in field creation and field edit flow went in
Comment #29
benjifisherI rebased the MR. One change that got lost is replacing "Choose an option below" with "Choose an option". I think that #3386762 changed it to "Choose a field type":
I think that is good.
I did not test much, but I did look at the Reference options, and I think our changes are still there.
Comment #30
benjifisherBased on Comment #27, the status should still be NW.
Comment #31
rkollerUsability review
We discussed this issue at #3524868: Drupal Usability Meeting 2025-05-23. That issue will have a link to a recording of the meeting.
For the record, the attendees at the usability meeting were @benjifisher, @rkoller, and @simohell.
In todays meeting we've discussed the remaining questions in #3370326-27: Refine labels and descriptions for field types, the changes we've agreed on were already committed by @benjifisher and myself. To contain the scope we've created three followup issues:
the fourth point we touched today we've already opened another followup #3500553: Add media reference to the same field type group as file and image, it is about the question where to place the media field type and the potential confusing of the naming of the group that is containing the file and image field type ([in the same vein is #2862458: [META] Once media is enabled, having the File, Image and Media reference fields all listed is confusing raised in #11). and it has to be pointed out that #3397711: Move label and machine name fields to the field config edit form is also important in the context with this issue.
If you want more feedback from the usability team, a good way to reach out is in the #ux channel in Slack.
Comment #32
benjifisherComment #33
benjifisherOops, I updated the wrong issue. Back to NW.
Comment #34
rkollerAdded two screenshots so that they can be used in the to be updated issue summary. and i also adjusted the the issue title to the updated MR title, after the issue is not only about the descriptions but also about the labels. and the draft status got removed from the MR as well since all the changes are in and tests are passing thanks to @benjifisher
Comment #35
benjifisherComment #36
benjifisherComment #37
benjifisherComment #38
rkolleradded before screenshots for selection list and reference and also added before and after screenshots for the first step to illustrate the change there (removing the mention of the concept of field as well as the periods at the end as well as the general streamlining of the descriptions)
Comment #39
rkollerComment #40
benjifisherI have added a change record. The automated tests pass. @rkoller and I have updated the issue summary. I think this issue is ready for review.
Comment #42
benjifisherI am adding credit for @tstoeckler from #3524141: Adapt field type labels after switch to multi-step field creation. (Thanks to @rkoller for linking that issue to this one.)
Comment #47
benjifisherI am adding credit for the users who contributed to #2930446: [PP-1] Improve field description texts for fields provided by core, which was closed as a duplicate of this issue.
Comment #49
benjifisherI am giving credit for the related issue #3514939: Better help text for Date and Time Field.
Comment #50
benjifisherComment #51
rkollerI’ve demo’ed the current state of the MR at the weekly lean coffee table call from the Drupal User Group Munich on Tuesday. For the record the attendees were @drubb, @franz-m, @jurgenhaas, and @martin mayer - most experienced longtime backend developers). All in all, the first impression was a good one, an improvement over the current state. They had a few comments on certain field types and groups we’ve taken a look at, in no particular order:
Formatted text“…with option to assign text editor”, the with “option to assign” sounded odd and off for none native english speakers.Formatted textgroup their first remark was about the order of the descriptions.shortis explicitly mentioning that you have certain formatting options, the other two don’t have that mention. By explicitly naming it for one field type , the indirect assumption/conclusion is that it is not available on for the others.Plain textandFormatted text, the suggestion was as already mentioned to make the single and multi row aspect more prominent by grouping by single row and multiple row.File uploadgroup it was confusing to see the example of jpeg/png/webp/gif for the file as well as the image field type.Referencegroup, why the “Other” field type label? It was considered confusing and sort of ambiguous.Comment #52
rkollerand while writing up the summary in the previous comment i've also noticed one other detail, for consistency reasons it might be worth a thought moving the help text on the field upload group on the second step right before the field types instead of after them, after we've enabled help text on for example the selection list group right before the field types.
Comment #53
rkollerI’ve demo’ed the current state of the MR at the monthly NWDUG meetup last Tuesday. For the record the attendees I am aware of their nickname on d.o were: @asherry, @bernardm28, @dydave, @h2cm, @mr_scumbag, and @philipnorton42. All in all, the first impression was also a good one, an improvement over the current state. They had a few comments on certain field types and groups we’ve taken a look at, in no particular order:
Efficient storageon for example short plain text it was asked does that imply that the other ones listed are not efficient then?Comment #54
rkollerAt #3527306: Drupal Usability Meeting 2025-06-13, we continued work on this issue. For the record, the attendees at the usability meeting were @benjifisher, @rkoller, and @simohell.
Aside the commit with the discussed changes I've pushed we had four more points that are probably potential followups mostly:
Comment #55
benjifisherClarification: one of the points in Comment #54 is
That refers to text like the following:
It would be helpful to add a link to
/admin/config/content/formats(thefilter.admin_overviewroute). Unfortunately, it is technically difficult to add that link since the text is part ofcore/modules/text/text.field_type_categories.yml.Comment #62
benjifisherI am adding credit for the users mentioned in Comment #53.
Comment #63
benjifisherI added a couple of commits, implementing
field_type_category_info_alter:file_uploadgroup should only appear when themediamodule is enabled, so it cannot be in a static YAML file. It also needs a link to the help page if thehelpmodule is enabled.formatted_textgroup. The most reliable way to generate the link is with PHP code, using the route name instead of the path.Comment #68
benjifisherI am adding credit for the users mentioned in Comment #51.
Comment #69
benjifisher@Emma Horrel:
On #3526383: [PP-1] Add the option to customize the order of field types in field type groups (postponed on this issue), you asked,
For this issue,
@rkoller has brought up this issue at meetups. Even fairly experienced users are not aware of some of the information that we have added while working on this issue. See Comments #51 and #53 on this issue.
P.S. I added this comment during #3536866: Drupal Usability Meeting 2025-07-25. Also present: rkoller and simohell.
Comment #70
cedeweyI participated in a usability review of the proposed changes to the Add field modal at DrupalCamp Colorado 2025 with fellow Drupal contributors matthews, treevis and timurtripp. Please add them as contributors.
Overall, we think this is a good improvement over the existing field descriptions. We find them to be more user friendly and like the updated formatting starting with an active verb.
There are some revisions we recommend,
* Reference
** Proposed description contains confusing jargon. Rephrase it to “Reference other content”
* Number
** Proposed description is redundant. Simplify it to “Numeric value”
* File upload
** Proposed description is confusing. Simplify it to “Upload any type of file”
* Link
** To be consistent with other field descriptions, rephrase the description to “Store a URL, with an output text option”
Comment #71
rkollerUsability review
We discussed this issue at #3538054: Drupal Usability Meeting 2025-08-01 and #3539211: Drupal Usability Meeting 2025-08-08. Those issues will have a link to a recording of the meetings.
For the record, the attendees at both usability meetings were @benjifisher, @rkoller, and @simohell.
We’ve discussed the changes proposed in #70
we went with the suggestion even though referring to just content is a bit imprecise, because in the field settings you are able to select content but also configuration entities for referencing. going with something like “entity” or “component” would also be too abstract, jargony, and/or expressionless. but we moved the detail about content and configuration to the second step. we added a second bullet point to the “other” option
Any content or configuration entity could be referenced- that way things are communicated. out of the scope for this issue, we also came up with one or two potential followup issues:content,taxonomy term, oruseris selected, disable theType of item to referenceselect.Type of item to referenceoption, to provide some context to the userwe’ve kept “numeric value like quantity or price” for now. reducing it to just “numeric value” felt redundant, but with the examples it aligns with the pattern used on
plain textandformatted textthat provided examples as well.we didn’t know how we ended up on
Create media type with the ability to upload assets, it was sort of building on the help text on the second step of the media field type and the file upload group. So we reverted it back to the initial variant:Upload any type of files, which is using the plural of the noun file.we’ve considered
store a url(we used that on our own suggestion as well) andoutput text optionimprecise. our new suggestion would beA URL or internal path, with optional link textthat way it communicates you can either enter external or internal link and it is also communicated that you also have the option to add a link text.Comment #72
berdir> numeric value like quantity or price
FWIW, the price thing could be confusing for people using commerce, because that has an actual price field type and you must use that, not numeric value. Unless that decides to make it part of the numeric value category, but that seems somewhat unlikely as it has more parts than just a number. Maybe use a different example, we often use numbers for a weight/order sorting field, both terms have multilple meanings as well, especially with translations.
Comment #73
benjifisher@berdir:
That is a good point.
Both the
commercemodule and thephysicalmodule (Physical Fields) define their own field categories and put their fields under those categories. I disagree with that decision, but I do not know if I can persuade them to change.During the usability meeting, we thought that many users would not think that "number plus unit" would be under the Number category, so we wanted to give an example to suggest that. The core fields are suitable for simple uses: in addition to the numeric value stored per field instance, the configuration can store a prefix or suffix to indicate a type of currency or a physical unit.
If we do not use price nor physical unit, in order to avoid confusion with those two contrib modules, then what else can we use as an example? I do not think that weight gets the point across. Do you have any other suggestions?
Comment #74
emma horrell commentedReference #69 happy to test the changes with a less experienced site editor to gain perspective on this (in contrast to the views from more experienced builders as gathered by Ralf). Can anyone make me a test environment with the functionality that I can use to test with?
Comment #75
rkollerthank you! since you have ddev installed, do you also happen to have ngrok set up on your computer? if not just ping me. then the easiest most flexible approach also with regard to testing other issues in the future would simply be running and setting up a testing environment once with the following single line in the terminal in your Sites folder. during the install process you will have to confirm one or two times with
y:mkdir drupal11 && cd drupal11 && ddev config --project-type=drupal11 --docroot=web --database=mariadb:11.8 && ddev composer create-project joachim-n/drupal-core-development-project -y && ddev composer require drush/drush && cd repos/drupal && git remote add drupal-3370326 git@git.drupal.org:issue/drupal-3370326.git && git fetch drupal-3370326 && git checkout -b '3370326-refine-field-descriptions' --track drupal-3370326/'3370326-refine-field-descriptions' && cd .. && cd .. && ddev drush si --account-name=admin --account-pass=admin -y && ddev drush pmu toolbar && ddev drush en navigation datetime_range telephone media media_library -y && ddev sharecopy the address you'll see in the ngrok share dialogue, should be something like
https://4056a05eb8a3.ngrok-free.app. go to the login page of that address, i'll use the example address in the following, you'll have to replace with teh current:https://4056a05eb8a3.ngrok-free.app/user/loginenter
admin/adminand then go tohttps://4056a05eb8a3.ngrok-free.app/admin/structure/types/manage/articleand let the tester press the
Create a new field button.Comment #77
the_g_bomb commentedIf we close and open the MR, will we get a tugboat preview link?
That could be used to share a link to an environment where non-technical users can perform a test.
Comment #78
rkollerUsability review
We discussed this issue at #3540379: Drupal Usability Meeting 2025-08-15. That issues will have a link to a recording of the meeting.
For the record, the attendees at both usability meetings were @benjifisher, @rkoller, and @simohell.
We've agreed to the concern raised by @berdir in #72. Aside the concepts covered in the commerce module there are also the ones used in the physical fields module added by @benjifisher in #73. That narrowed down the potential candidates to use as examples further. In the end we've came up with the suggestion:
radio frequency:@berdir what do you think about that idea? would the new suggestion work for you or have you come up with another viable alternative? or does someone else has any thoughts or ideas in that regard? otherwise i would push the change up.
the other detail we've discussed is the overall consistency of the microcopy. while evaluating the raised concern in the commerce module it turned out that the difference between field types in core using the MR and field types in contrib module are significant.
none core related descriptions use periods at the end and or uses the term field or field type within the description, all things we've avoid.
the descriptions are missing bullet points and field groups could use help text on the second step which might be unapparent to maintainers. and in general we've tried to be educational and informative in the descriptions on the second step, and if appropriate providing examples and when best to use the particular field type.
over all we've agreed it would be a good thing to have at the very least a change record for this issue or ideally in addition to that create a follow up issue to work on a "style guide" for field types. so maintainers of contrib modules have coherent easy to find guidelines.
Comment #79
emma horrell commentedCompleted a short test with one participant, non-technical, slightly familiar with Drupal but unfamiliar with the labels of field types.
Test required participant to make amendments to an article content type:
- to ensure they were able to add images when they published articles
- to ensure that when they published articles they could include teaser text
Successful completion of these tasks required selection of the image fieldtype and the plain text fieldtype.
Participant successfully completed both tasks indicating that the fieldtypes made sense. Reading the descriptions of the fieldtypes available, they said they did not know what varchar link text was, suggesting this term could be simplified
Comment #80
emma horrell commentedComment #81
rkollerhave you tested the state shown in the screenshot? based on the concern about the use of term
varcharit looks like. but those strings in the screenshot are the old pre-MR strings. the description about the link field type for example is currentlyA URL or internal path, with optional link textnot using the concept of varchar?Comment #82
emma horrell commentedI would say if 'varchar' is no longer in the description following the MR, then that's clearer, no need to retest this, if varchar is removed then so is the point of confusion the participant experienced.
Comment #83
needs-review-queue-bot commentedThe Needs Review Queue Bot tested this issue. It no longer applies to Drupal core. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.
Comment #84
benjifisherThe merge conflict is because this issue added a function to
NodeHooks1.php, which was removed in #3511357: Clean up hook implementations in Node module. Following the recommendation in #3493453: [meta] Standardize and clean up hook classes in core (and the text file attached to that issue) I moved the implementation offield_ui_preconfigured_options_alter()to a new class,NodeFieldHooks.I also moved the implementations of the same hook in the
taxonomyandusermodules to new classes (TaxonomyFieldHooksandUserFieldHooks). When the meta issue reaches those two modules, a little bit of the work will already be done.Comment #85
benjifisherComment #86
rkolleri've noticed one problem, on the second step within the reference field group the description for the user looks broken (in EntityReferenceItem.php):i was able to pull more changes on a second pull now the description for the user reference field type is correct again as well. apologies. setting it back to needs review.
Comment #87
rkollerComment #88
benjifisherI am adding credit for the contributors mentioned in Comment #70.
Comment #89
dwwThere was a request in the #ux Slack channel for a "technical" review. I tried my best. Couldn't help myself from also bikesheding on some of the new UI text. 😅 But I also tried to find any technical concerns.
This is mostly looking really good. Definitely some big improvements over what we've already got!
Disclaimer: I only reviewed the MR diff. I didn't try to apply locally, test in the UI, etc.
Thanks,
-Derek
Comment #90
benjifisherI added #3550720: Refactor FieldUiJSTestTrait::fieldUIAddNewFieldJS() because it is brittle with just the changes to the test trait. I think that reduces the scope of this issue, making it easier to review. It also gives us a MR to prove that this change does not break anything.
If the child issue gets fixed, then we can remove (4) from the Proposed resolution of this issue.
Comment #91
benjifisherWe discussed this issue at #3550127: Drupal Usability Meeting 2025-10-10. That issue has a link to a recording of the meeting. I am giving issue credit here to the attendees at the usability meeting: benjifisher, jannafiester, joannajackson, rkoller, and simohell.
If you want more feedback from the usability team, a good way to reach out is in the #ux channel in Slack.
In preparation for the meeting, I went through all the text changes suggested or requested by dww, in the order they appear on the MR. I figured out where they appear in the UI and prepared the list below (copied from #3550127). During the meeting, we got through about half of the list: we got as far as Media. We will update the MR based on the discussion, but I do not plan to reply to each point on the MR. @dww, If you still object or have questions, then please either bump the thread (i.e., add another comment) or look at the recording. Or maybe it is simpler if you just resolve the threads where you are satisfied with our choice, and then I will reply to the unresolved threads.
With any luck, we should be able to finish the list at next week's meeting (2025-10-17). If so, then we will update the MR again and set this issue back to NR.
dww: There is something you may have missed by looking at the code, unless you also looked at the result in the UI. Each field-type category has an optional description: it applies to all the field types in the category. Under each field type, there is a bulleted list: these bullet points are used as differentiators. I think that might answer a few of the questions you had.
@dww reviewed the MR for #3370326: Refine labels and descriptions for field types. The review included some technical points and some suggestions for improving the interface text. The following sections summarize those suggestions. Each numbered list includes
File Upload > File
Imagefield type, why does the help text for this specifically recommend using a genericFileto upload image file types?Date and Time
Formatted Text > Long text with summary
I do not think this is a serious suggestion.
Telephone Number
To see this option, enable the
telephonemodule.Same concern as with
emailabout what an "output link option" is.Selection List > Text
I know "0.9" is technically a "text string", but this seems confusing.
Selection List > Integer
The
Name (Value)part of this is a bit confusing. Maybe just:Reference > Content
These node types may or may not exist on any given site. Is this a good idea?
Media
Date and Time
Plain Text > Long Text
Number > Integer
3 != pi. 🤓 😆 This is a weird example.
Isn’t the 2nd line ("Values are positive, negative, or zero") a definition of the 1st ("Whole numbers")? Do we need to say both?
Sorry, just double checked myself. "Whole number" is defined as a positive integer or 0.
Negative integers are not whole numbers. This new help text is definitely wrong. Perhaps the original text "Numbers without decimals" is the shortest, most clear.
@rkoller:
Number > Float
In order to see this option, you have to remove the line
in
core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php.Reference > ???
You only see this default value if a module declares a reference type to be "common" but does not provide a description. For testing purposes, you can remove the description from
core/modules/node/src/Hook/NodeFieldHooks.php.@item@itemwill be, buta(n)is a bit awkward. Again, not sure what to suggest.Reference > Other
@rkoller:
Email
I know we’re attempting to be terse, but trying to put on my "new eyes", I’m not sure I’d understand what "an output link option" is.
Comment #92
rkollerWe discussed this issue at #3551491: Drupal Usability Meeting 2025-10-17. That issue will have a link to the recording of the meeting. For reference the attendees at the meeting were @benjifisher and @rkoller.
We've discussed the second batch of comments raised by @dww. The first batch was discussed during #3550127: Drupal Usability Meeting 2025-10-10 last week. The only noteworthy detail from todays discussion was that we've kept
A reference to a(n) @itemas is due to the fact that it is an extremely rare edge case most users will never run into and any effort trying to rephrase that string made things even worse. :/ I'll set the issue back to needs reviewoh and thanks a lot to @dww for the in depth review. it surfaced quite a few rough edges!
Comment #93
rkollerpush another small update to the MR. during the meeting on friday (#3551491: Drupal Usability Meeting 2025-10-17) we've changed one bullet point on the description of the datetime field. we've noticed some more inconsistencies with the descriptions of the other date and time field types. after a brief discussion on slack with @benjifisher we agreed on the folllowing changes:
adjust the second bullet point of datetime range to the new pattern used on datetime and change
to
Choose either date and time, date only, or all daywhich are the settings on the field settings page.while
Input requires: date, timeon the timestamp field type is simply wrong. the description of the input field for the timestamp states "Leave blank to use the time of form submission.". So the input is not required and we simply striked the bullet pointComment #94
benjifisherAfter #3550127: Drupal Usability Meeting 2025-10-10 and #3551491: Drupal Usability Meeting 2025-10-17, @rkoller and I updated the MR. We also replied here on the issue and on every open thread on the MR. (In Comment #91, I wrote, "I do not plan to reply to each point on the MR", but I changed my mind.
@dww, thanks again for your initial review. I hope you can find time for a second round.
Comment #95
benjifisherThe child issue #3550720: Refactor FieldUiJSTestTrait::fieldUIAddNewFieldJS() because it is brittle was just Fixed, and I have updated the MR here. Judging by line count, it is a small improvement: +381/-152 instead of +395/-175. But the part that is handled by the child issue is very different from the rest of the MR, so I think the actual simplification is more than the line count suggests.
I am also updating the issue summary, since the Proposed resolution section no longer has to mention the change that was handled by the child issue. While I am at it, I am updating the last paragraph of the Proposed resolution section based on recent updates to the MR. (To do: update the screenshot.)
Comment #96
rkollerupdated the three after screenshots in the issue summary to reflect the latest changes
Comment #97
rkollerremoved one slash too much from the path for the second picture... fixed now.
Comment #98
rkollerAs mentioned before, I guess it would be a reasonable step to open up another follow up issue about creating some sort of style guide for the micro copy used on field types and field groups - basically the rules we've applied to the strings in this issue. otherwise the micro copy for any contrib field type will stand out in the interface. one individual example i ran into i've already filed an issue for is #3530845: Make the mermaid diagram field type presentation consistent by adding a description and an icon. to prevent that it might be good to a have central document about the general rules how those strings should look like that is easy to look up for maintainers. would it make sense to add a change record for this issue pointing to the to be created style guide?
Comment #99
dwwThanks for all the work in here since my last review!
Apologies I haven’t had a chance to re-review and RTBC. I’ve been super slammed, but just finished some intensive (transformational) work over the weekend, and should be able to circle back here in the next few days.
Re #98, sounds good. Perhaps a new CR is most clear. But what about editing the existing CR that introduced the new field UI stuff? On my phone, not easy to find right now.
Thanks again!
-Derek
Comment #100
rkolleryep i agree updating the existing CR might be good idea. and in regard to how to make developers in contrib aware of that change @jurgenhaas had the idea in todays lean coffee table to add tests to the drupal CI process. how many of those rules will be testable will be the question but things like to avoid periods at the end of the description of a field type or avoiding the term
fieldin the description should be do able. and to sum up a brief follow up discussion with benji over in a thread in the ux channel on slack, he saidphpcsmight be the test to go with (the other suggestion from juergen was phpstan - he was uncertain about the right pick) and it would imply to add a new rule to the drupal coding standards. so it would definitely mean adding those tests in a follow up issue. and then to start with a test for "common" entity types (listed along with nodes, media, taxonomy terms) that do not have descriptions. other rules might be harder to test.Comment #101
benjifisherI updated the MR and fixed a merge conflict in a test file from #2409559: User should be able to identify required fields from field listing. See the extended commit message for details.
Comment #102
dwwThanks for addressing all my feedback!
I resolved nearly all of my own threads. I left 3 open that might still be viable.
The other threads are from lauriii and I don't feel comfortable resolving those.
I'm not going to formally RTBC this with 12 open threads. But it's definitely very close!
Comment #103
dwwNote: latest pipelines are failing. If you rebase against 11.x, you'll get various fixes, including:
#3551373: [random test failure] ManageDisplayTest testFormatterUI() and testWidgetUI()
#3557585: Update to Composer 2.9.2
That will hopefully get us green pipelines again in here.
Comment #104
benjifisherAt #3562768: Drupal Usability Meeting 2025-12-19, we (@benjifisher and @rkoller) reviewed the recent comments on MR !11153 from @lauriii and @dww. I made some of the suggested changes and replied to others on the MR.
Comment #105
benjifisher@dww, @lauriii:
At #3564044: Drupal Usability Meeting 2026-01-02, @rkoller, @simohell, and I agreed to accept the suggested changes. We changed "refer" to "reference" for grammatical reasons, and we decided to change the help text for email and telephone links instead of just shortening (or removing) it. Just now, I implemented those changes.
Comment #106
lauriiiI think this is great now! Thank you so much @benjifisher, @rkoller, and @dww, as well as everyone else who has worked on this!
Comment #107
benjifisherThere are two commits that replace
with
This has the effect of removing the bullet point for the "Other" option:
At the 2026-01-02 Usability meeting, we (@rkoller, @simohell, and I) considered this change and decided to keep the bullet point. Even though there is only one item in the list, we think it helps to be consistent with the other options:
So I have reverted those two commits, restoring the bullet point.
Comment #108
benjifisherI am updating the "after" screenshots.
Comment #110
longwaveGreat to finally get these updated, this is another nice incremental improvement to the field UI. Tagging as a highlight for 11.4.0.
Committed and pushed 73f1c59d389 to main and e22a8d8493b to 11.x. Thanks!
Comment #114
longwaveComment #116
longwave