container
Audit
- Macro ID
- container
- Source
- XS
- Type
- Wrapper
- Classification reason
- Status
- Reviewed
- Criteria version
- 15.20
- XWiki version
- 18.8.0
- Audit date
- 2026-10-14
- Auditor
- Compared macros
- box gallery
Sources
Where to gather the information the criteria are checked against, see Gather the sources.
| Other sources specific to this macro |
|---|
|
| Criterion | Result | Notes |
|---|---|---|
| D1 wording | KO | "Container" is a developer term for what the documentation shows users as columns: its only usable example is {{container layoutStyle="columns"}} , the other one, "grid", being a layout that a developer has to implement. |
| D2 summary | KO | the description "A macro to enclose multiple groups and add decoration, such as layout." does not say what the macro adds to the page, columns, the only layout available: "groups" is a wiki syntax term and "decoration" is vague. |
| D3 category | OK | |
| D4 quick-action | KO | Quick Actions finds the macro first for "container", for the French name "Conteneur" and for the synonym "layout". The synonyms "columns" and "grid" give no result, although columns are the only layout of the macro. |
| L1 consistency | OK | compared with box and gallery. Like box, the content is optional and Quick Actions inserts an empty {{container/}} without a dialog; gallery requires its content, which is by design. |
| L2 doc-parameters | KO | the parameters are documented only on the legacy page Container Macro, not in the new documentation, and that page does not document cssClass nor the content. |
| L3 doc-example | OK | |
| I1 pattern | OK | |
| I2 zero-config | KO | {{container/}} , inserted from Quick Actions, and {{container}}{{/container}} , inserted by the Edit Macro dialog submitted with the default values, show a "macro:container" placeholder in the editor and render an empty div in view mode: the user sees nothing. With a content but the default values, no layout is applied either, since layoutStyle has no default. |
| I3 instant | OK | |
| I4 cursor | KO | after insertion from Quick Actions ("/container", then Enter), the macro is a non-editable "macro:container" placeholder with no content area: typed text goes after the macro, and the only way to add content is the Edit Macro dialog. |
| I5 focus | N/A | |
| E1 wysiwyg | OK | |
| E2 errors | KO | invalid values are accepted silently, with no message: {{container layoutStyle="grid"}}(((first)))(((second))){{/container}} and {{container layoutStyle="Columns"}}...{{/container}} render the content without any layout, {{container justify="abc"}}Text{{/container}} renders as justify="false", and {{container justify="true"}}Text{{/container}} without layoutStyle="columns" has no effect, since the CSS of the justified class is only loaded by the columns layout. |
| E3 nesting | KO | in a list item and in a table cell the macro fails in view mode with "The [container] macro is a standalone macro and it cannot be used inline". Inserting it from Quick Actions at the start of a new list item gives * {{container/}}((( ))) and the same error, in the editor and in view mode. In a box it renders, but its content, like a list, a table or a box inside it, can never be edited in place, see E6. |
| E4 inline-support | OK | |
| E5 empty | KO | the container inserted from Quick Actions has no content area: it is a "macro:container" placeholder that never receives the cursor, see I4. The content of an existing container is not editable in place either, see E6, so it cannot be emptied in the editor. |
| E6 inplace | KO | the content is never edited in place, even {{container}}Some text{{/container}} with no layout: the whole macro is a read-only widget and the content can only be edited in the wiki syntax text area of the Edit Macro dialog. The content type is a list of blocks, but the macro does not mark its parsed content as non-generated content, unlike box. Columns are also groups, (((...))) , which the editor cannot create. |
Parameters
| Parameter | C1 clarity | C2 mandatory | C3 defaults | C4 input-assistance | C5 groups | C6 order | C7 alternatives | C8 advanced | C9 technical | C13 constraints | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $content | KO | OK | N/A | OK | N/A | OK | N/A | N/A | N/A | N/A | C1: the description "The content to enclose in this container (wiki syntax). For the "columns" layout, a group should be added for each column." relies on the wiki syntax term "group", (((...))) , which a WYSIWYG user does not know and cannot insert. C4: edited in the wiki syntax text area of the Edit Macro dialog only, recorded under E6. |
| cssClass | OK | OK | OK | OK | OK | OK | N/A | KO | OK | N/A | C1: the description "Value of the HTML class attribute to add to this container, used to style in CSS." uses technical terms, which fit a styling parameter. It says "add", while the value replaces the classes of the layout, see XWIKI-25294. C8: a styling parameter that is rarely used, and no common example sets it, but it is not marked as advanced. |
| justify | KO | OK | OK | OK | OK | OK | N/A | OK | OK | N/A | C1, minor: the English name is the ID, "justify", and the description "Flag specifying whether the content in this container is justified or not." uses the technical term "flag" and does not say that it only has an effect with the columns layout: {{container justify="true"}}Text{{/container}} is not justified. |
| layoutStyle | KO | OK | KO | KO | OK | KO | N/A | OK | OK | N/A | C1: the description "The identifier of the container layout (e.g. "columns")." uses the technical term "identifier" and does not list the accepted values nor say what the columns layout does, one column per group. Without it the macro renders its content as is. C3: the most common example sets layoutStyle="columns", but the field opens empty, with no default value. C4: a free text field, although the accepted values are the installed layouts, only "columns" in XWiki Standard: a select could be used. A typo or another case, like "Columns", is accepted and gives no layout, see E2. C6: the parameters are in alphabetical order, cssClass, justify, layoutStyle. layoutStyle, the only parameter of the most common example, comes last. C13: the accepted values are the installed layouts, a list rather than a range or a format, so it is recorded N/A: the select of C4 would declare them. |
Other notes
The cssClass parameter replaces the classes set by the layout and justify instead of adding to it, so {{container layoutStyle="columns" cssClass="mine"}}(((first)))(((second))){{/container}} loses its columns: XWIKI-25294. It is a bug of the macro, not a usability criterion.
KOs and tickets
Every KO needs a ticket covering it, see Report the KOs. One ticket can cover several KOs. Known issues filed for this macro are suggested in italics: link them as existing tickets when they cover the KO.
| KO | Criterion | Existing tickets | New tickets |
|---|---|---|---|
| D1 | D1 wording | XWIKI-25481 | |
| D2 | D2 summary | XWIKI-25481 | |
| D4 | D4 quick-action | XWIKI-25444 | |
| L2 | L2 doc-parameters | XINFRA-525 | |
| I2 | I2 zero-config | XWIKI-25482 (partial), XWIKI-25567 (partial) | |
| I4 | I4 cursor | XWIKI-25569 | |
| E2 | E2 errors | XCOMMONS-3847 (partial), XRENDERING-823 (partial), XWIKI-25502 (partial), XWIKI-25582 (partial) | |
| E3 | E3 nesting | XWIKI-23501 (partial) | XWIKI-25567 (partial) |
| E5 | E5 empty | XWIKI-25567 | |
| E6 | E6 inplace | XWIKI-25443 (partial), XWIKI-25567 | |
| C1:$content | C1 clarity, $content | XWIKI-25481 | |
| C8:cssClass | C8 advanced, cssClass | XWIKI-25482 | |
| C1:justify | C1 clarity, justify | XWIKI-25481 | |
| C1:layoutStyle | C1 clarity, layoutStyle | XWIKI-25481 | |
| C3:layoutStyle | C3 defaults, layoutStyle | XWIKI-25482 | |
| C4:layoutStyle | C4 input-assistance, layoutStyle | XWIKI-23045 (partial) | XWIKI-25502 |
| C6:layoutStyle | C6 order, layoutStyle | XWIKI-25482 |
Tickets
| Ticket | Origin | KOs covered | KOs partly covered |
|---|---|---|---|
| XWIKI-23501 | Existing | E3 | |
| XCOMMONS-3847 | New | E2 | |
| XRENDERING-823 | New | E2 | |
| XWIKI-25443 | New | E6 | |
| XWIKI-25444 | New | D4 | |
| XWIKI-25481 | New | C1:$content C1:justify C1:layoutStyle D1 D2 | |
| XWIKI-25482 | New | C3:layoutStyle C6:layoutStyle C8:cssClass | I2 |
| XWIKI-23045 | Existing | C4:layoutStyle | |
| XWIKI-25502 | New | C4:layoutStyle | E2 |
| XINFRA-525 | New | L2 | |
| XWIKI-25567 | New | E6 E5 | I2 E3 |
| XWIKI-25569 | New | I4 | |
| XWIKI-25582 | New | E2 |
Known issues of this macro
No known issue is specific to this macro.
68 more known issues affect every macro: see the Known issues.
Lucas Charpentier