Module talk:Message box

(Redirected from Module talk:Message box/ombox.css)
Latest comment: 1 hour ago by Waddie96 in topic Aria roles

Edit request 7 January 2025

edit

Description of suggested change: Currently, Template:Ambox/doc#talk says, "In order to make sure there is always a link to the talk page, you can use |talk={{{talk|#}}}." This implies that a "#" value for args.talk should just link to an article's talk page with no particular section, and several templates do this. However due to the code in Module:Message box, using just |talk=# actually creates a link with two pound signs like this: Module talk:Message box## (verified on Template:Ambox/testcases).

This type of double-hash URL actually causes errors, when I click on it I get these nonsensical messages No search results found for section "#" in archives. It may have been removed or renamed, or you may have followed a malformed link. and a popup saying This topic could not be found. It might have been deleted, moved or renamed.

I fixed it by adding a special case for "#" in Special:Diff/1268004582 and Special:Diff/1268011357, and verified functionality in the testcases.

Diff:

local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
+
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk)
'%s the [[%s#%s|talk page]].',
+
'%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].',

Thanks, --Habst (talk) 21:25, 7 January 2025 (UTC)Reply

  Done * Pppery * it has begun... 21:54, 29 January 2025 (UTC)Reply

Protected edit request on 22 March 2025

edit

Am writing to request for a page protection Brian Chira Smart boy Ke (talk) 00:51, 22 March 2025 (UTC)Reply

@Smart boy Ke:   Not done: this is the talk page for discussing improvements to the page Module:Message box. Requests for increases to a page protection level should be made at Wikipedia:Requests for page protection. --Redrose64 🌹 (talk) 07:56, 22 March 2025 (UTC)Reply

Update icons to Codex

edit

For Module:Message box/configuration Update icons to use the new Codex icons, I've colored them manually in c:Category:Wikimedia Codex icons with color, using the colors we used with near identical OOUI icons.

etc. In some cases cmbox will use different icon. waddie96 ★ (talk) 12:06, 10 August 2025 (UTC)Reply

NOTE: The current icons are licensed such that they do not need the link to work so that arribution works. These new icons are CC4 licensed, so attribution would be needed and the link= attribute would also need removing from the code if these are to be used. -- WOSlinker (talk) 12:23, 10 August 2025 (UTC)Reply
@WOSlinker Sorry, I didn't do the mass upload to c:Category:Wikimedia Codex icons with color, I requested it at Commons:Batch uploading/Wikimedia Codex icons, and I requested it be made with the appropriate license which is {{MIT License}} found in the gerrit:plugins/gitiles/design/codex/+/refs/heads/main/packages/codex-icons/LICENSE. Also in the package.json it says "license": "MIT".
Also some the icons have already been there for a few years, and marked with {{CC-by-4.0}}, mistakenly too I assume. Anyway, I marked my colourings of the icons with that too since it was a derivation.
Anyway, CC-by-4.0 is incorrect license. {{MIT License}} is the correct one. I will re-tag the ones at c:Category:Wikimedia Codex icons with color and all the ones at c:Category:Wikimedia Codex icons but the second one may take quite a while. waddie96 ★ (talk) 13:08, 10 August 2025 (UTC)Reply
MOS:PDI says that a blank |link= param - which is what we essentially do with mboxes - should not be used with CC BY-SA, GFDL, or similarly licensed images. I think that I'm right in saying that c:Template:MIT License falls within "similarly licensed images". --Redrose64 🌹 (talk) 13:24, 10 August 2025 (UTC)Reply
@Redrose64 But the same icons are implemented in the cdxMessage component in Codex, and this component is deployed on this very wiki. This component shows the exact same images (just not using our source which is Commons) from the same Gerrit repo to display or messages we see all over. The entire package/library has the GNU General Public License see gerrit:plugins/gitiles/design/codex/+/refs/heads/main/packages/codex/LICENSE. waddie96 ★ (talk) 13:49, 10 August 2025 (UTC)Reply
See Special:Version: codex-design-tokens GPL-2.0+, codex-icons MIT, codex GPL-2.0+, wikimedia/codex GPL-2.0-or-later waddie96 ★ (talk) 13:50, 10 August 2025 (UTC)Reply
@Redrose64 Also, is the use of the predecessor OOUI icons with MIT license in violation of copyright at mw:Module:Message box/configuration for example. waddie96 ★ (talk) 14:29, 10 August 2025 (UTC)Reply
Do we have consensus for these, has this change been discussed outside of this request ? Sohom (talk) 15:47, 10 August 2025 (UTC)Reply
@Redrose64 Where in the quoted policy does WP:PDI state a blank |link= param - which is what we essentially do with mboxes - should not be used with CC BY-SA, GFDL, or similarly licensed images.? I couldn't find it. waddie96 ★ (talk) 16:25, 10 August 2025 (UTC)Reply
Sorry, MOS:PDI. It's always confusing when otherwise-similar MOS: and WP: shortcuts take you to different places. --Redrose64 🌹 (talk) 16:28, 10 August 2025 (UTC)Reply
waddie96 ★ (talk) 16:39, 10 August 2025 (UTC)Reply
I've answered the edit request as   Not done for now: please establish a consensus for this alteration before using the {{Edit protected}} template. (non-admin closure) Aaron Liu (talk) 02:21, 11 August 2025 (UTC)Reply

CSS instead of tables

edit

Could this thing use <div style="display:table;"> and <div style="display:table-cell;"> instead of literal tables and table cells (<table>, <td>)?

Were the any previous attempts to remake this using <div>? If so, what was the consensus? Sapphaline (talk) 09:46, 20 August 2025 (UTC)Reply

A long time ago this would have been converted to divs but apparently IE sucked (this should not be news).
Today, I have User:Izno/Sandbox/Ambox with what are some skimmings and started a sandbox at Module:Message box/div. I have just done a very bad job of finishing this work. Izno (talk) 22:09, 24 August 2025 (UTC)Reply
Which might be closer to done than not, honestly. I think what it currently needs is to
  1. Double check the ambox work
  2. Add "soft" support for the other kinds of boxes (where soft is defined as module-supports but config disabled)
  3. Merge tested /div version but not CSS into main
  4. Enable boxes of each kind one by one.
  5. Fix bugs that are identified
  6. Move CSS over to better-named stylesheet
  7. Delete the /div CSS (I won't be too sad)
  8. Remove main support for table versions, possibly rename some things
Izno (talk) 22:42, 24 August 2025 (UTC)Reply
I have now put this plan in a publicly editable place at Module:Message box/div/doc. IznoPublic (talk) 00:26, 26 August 2025 (UTC)Reply
What's broken here? I've probably wrong but AFAIK for accessibility the existing role="presentation" should suffice. Aaron Liu (talk) 23:21, 28 August 2025 (UTC)Reply
You should always endeavor to use the default aria role element. In this case, that's not a table. Ignoring that, tables are shit for doing other presentation with. Izno (talk) 03:20, 29 August 2025 (UTC)Reply

Aria roles

edit

The elements with role=none (synonym for presentation which is not recommended for use) is not be hidden from the accessibility API but their implicit semantics are hidden. Meaning the contents of an Ambox for instance will not have the implicit semantics of a HTML data <table>. So the content given in |text= will simply be presented to the accessibility API technology as <div>Content</div> instead of <table>Content</table> which is what we want, yes. However, the accessibility technology, i.e. screen reader, etc., will not have any idea what this text is or what it represents since the <div> element that it 'sees' has no implicit role, such as with <p>Content</p> for instance, and there is no aria-label given... So I suggest we give it these values, especially since:

If presentation or none is applied to a <table> element, the descendant <caption>, <thead>, <tbody>, <tfoot>, <tr>, <th>, and <td> elements inherit the role and are thus not exposed to assistive technologies.But, elements inside of the <th> and <td> elements, including nested tables, are exposed to assistive technologies.

— taken from [1].

I interpret this as meaning that the <img> element inside the first <td> element will be exposed, and it is simply an image/icon with no benefit to the screen reader or the visually impaired... so give the image <td> element with class mbox-image the HTML attribute: aria-hidden="true"; so that it is completely hidden from the accessibility technology.

The next <td> nests our mbox-text class with the actual stuff we want to expose. But we want to give it meaning too. The role should be: role="note" as it's a note semantically speaking and does not fit any other ARIA role, and the child elements of that will all be exposed to the API as whatever has placed in the text parameter anyway (as confirmed in the quote above). Finally I suggest giving it an aria-label="Notice" if |type=notice or style or content, and possibly aria-label="Warning" if delete or speedy. So it'll read out with a screen reader for example as: Note. Notice. Content...

Option 2... the parent element may actually be what we need to expose because it's nesting the whole dang thing? I don't think it matters since the parent elements of the text element are hidden from the API but another solution possibility could be setting the entire <table>'s role to role="note" and giving it an aria-label="Notice", and then still hiding the image, and then leaving the text element alone, however I'm unsure if the note role is inherited by child elements like the none/presentation role is.

waddie96 ★ (talk) 00:19, 29 August 2025 (UTC)Reply

How about we wait to suss out how we want to deal with any accessibility questions here after I've got everything in divs, as in the section just above. Anyway, I think the last time I looked at this, the most similar was role=note for what message boxes represent. I am pretty sure I am not a fan of adding labels here, which should be when the content needs naming, and this does not. Izno (talk) 03:24, 29 August 2025 (UTC)Reply
(In fact, the div version already removes the presentation role.) Izno (talk) 05:18, 29 August 2025 (UTC)Reply
Cool. Please do ping me in discussions when this is revived. I've read extensively for many hours for something else and I'm quite well versed in it now. Yes, role="note" is the most appropriate role. Also, after testing it in the enwiki context using a few different screenreaders I tend to agree with you that an aria-label in this case is unnecessary "fluff" to the accessibility tree for the mbox, since as you stated the text describes itself. 👍 waddie96 ★ (talk) 14:56, 29 August 2025 (UTC)Reply
Awesome. Can it give the image the HTML attr aria-hidden="true" too? Please 🙏 waddie96 ★ (talk) 14:59, 29 August 2025 (UTC)Reply