Usability analysis

Last modified by Lucas Charpentier on 2026/10/13 14:05

This page follows the audit of every macro of the per macro analysis against the usability criteria. The progress, the history and the results are computed from the audit of each macro page, so they are up to date as soon as an audit is saved. To audit a macro, follow the audit process. The JIRA issues reported before the audit are listed by macro in the Known issues.

Progress

Progression

Information

No macro reviewed yet.

Status of the 68 macros

Macros to audit68
Reviewed0 (0%)
In progress1
Not started67
Wrappers / generators reviewed0 / 0
KO results0
KOs covered by a ticket0 / 0 (0%)
Tickets linked0 existing, 0 new
Reviewed, earlier analysis still to delete0

KOs not reported yet

Information

No macro reviewed yet. The KOs of a macro are listed here once its audit status is Reviewed.

History

One row per day on which macros were marked as reviewed, from the audit date of each macro, or from the last change of its page when the audit date is empty.

Information

No macro reviewed yet. A macro appears here once its audit status is Reviewed.

In progress: warning.

Results

Information

No macro reviewed yet. The results only count the macros whose audit status is Reviewed.

All audit values

Criteria

Information

This is a copy of version 15.17 of the Usability criteria, the version every macro is audited against. Later changes of that page do not apply to this audit.

These are the criteria every macro is audited against in the WYSIWYG usability of XWiki macros proposal. The goal is that a user can insert and configure a macro without reading any documentation.

The criteria use the parameter metadata XWiki already supports. Each criterion has a name to refer to it, and a measure that adds any precision needed to check it.

Information

Macros already marked as deprecated or internal do not need to be audited against these criteria, since they are hidden from insertion.

0. Classification

  • Wrapper macro: most of its output is content the user types, and the macro decorates or structures it. Examples: warning, info, success, error, box, expand. Reference: warning.
  • Generator macro: most of its output comes from its parameters and the context around it, not from typed content. Examples: table of contents, Jira charts, livedata, document tree. Reference: to be chosen.
  • When a macro sits in between, classify it by what makes up most of its output, and note the reason.

1. Discovery

IDNameDescriptionApplies toMeasureExample
D1wordingThe macro name uses the user's words for what it produces (a warning, a diagram), not technical jargon.AllNo camelCase, code identifier or unexplained acronym.XWIKI-21596
D2summaryThe macro description is one sentence that says what the macro adds to the page.AllAbout 20 words or fewer, and not just a repetition of the name.-
D3categoryThe macro is in the category a user would expect it in. WarningThis is especially important for deprecated and internal macros, which are hidden from insertion only when they declare the Deprecated or Internal category.AllCompare the macro's category with the categories of the macros compared in L1. They should be the same.XWIKI-25018
D4quick-actionThe Quick Actions menu finds the macro with the words a user would type, including its localized name in the current UI language and common synonyms like "note" or "callout" for info or warning.AllThe macro is in the first 5 results for its name, for its localized name in at least one other UI language, and for each synonym listed in the audit.-

2. Learnability

IDNameDescriptionApplies toMeasureExample
L1consistencyThe macro behaves like the other macros of the same kind, for the mandatory content, the insertion process and its default parameter values.AllCompare the macro with at least two macros of the same type, for mandatory content, insertion and defaults. Every difference should have an issue or a cross-macro findings entry.XWIKI-23035
L2doc-parametersThe documentation of the macro parameters is up to date.AllThe documentation page lists the same parameters, defaults and mandatory flags as the macro.-
L3doc-exampleThe documentation of the macro contains at least one example for its most common use.AllThe example can be copied into a page and renders without error.-

3. Insertion

IDNameDescriptionApplies toMeasureExample
I1patternThere is no macro-specific insertion behavior. The macro follows a common behavior, whether inserted from the Quick Actions menu or from the Insert Macro dialog.AllSame steps as the reference macro of the same type, from both the Quick Actions menu and the Insert Macro dialog.-
I2zero-configInserting with only default values gives a sensible result, not an error box. Generator macros may require configuration before giving a sensible result.Wrapper (All?)No error box in the editor, nor in view mode after saving.-
I3instantInserting from the Quick Actions menu does not open the Edit Macro dialog. The macro appears in the page right away.WrapperOne Enter is enough.-
I4cursorAfter insertion, the cursor is in the macro content, so the user can keep typing without an extra click.Wrapper--
I5focusWhen inserting a macro through the Edit Macro dialog, the essential parameters come first and the focus is on the first one.GeneratorEvery mandatory parameter is visible without expanding a section or scrolling.XWIKI-21362

4. Configuration

Information

The content of a macro is a parameter like any other. The Applies to content column tells whether a criterion also applies to it. The content descriptor only declares a description, a mandatory flag, a type and an order, so the other criteria cannot apply to it.

IDNameDescriptionApplies toApplies to contentMeasureExample
C1clarityEach parameter name and description is self-explanatory, and uses user terms.AllYesStates the effect and the expected value, with no technical term unless the macro targets developers.XWIKI-23032
C2mandatoryA parameter is mandatory only when the macro's behavior is ambiguous without it.AllYesFor each mandatory parameter, look for a default value that works for the most common example of L3. If one exists, the parameter should be optional.-
C3defaultsThe default value of each optional parameter is the value used in most cases, and the Edit Macro dialog displays it clearly.AllNoThe default is the value used in the most common example of L3, and the Edit Macro dialog shows it as a preselected value.XWIKI-16040
C4input-assistanceEach parameter uses an appropriate input, such as a picker or a checkbox. Pickers support both suggestion and typing for selection.AllYesNo free-text field is left where a picker could be used. In each picker, searching for an existing target gives consistent and predictable results.XWIKI-23037
C5groupsParameters used together are in the same group, and groups appear in a logical order.AllNoCount the parameters outside any group, then the parameters in each group. None of these counts goes above Miller's number, 7 ± 2. The group with the essential parameters comes first, and no group mixes unrelated parameters.-
C6orderWithin each group, and among the parameters outside any group, parameters are ordered by how often they are used.AllYesWithin each group, and among the parameters outside any group, the parameters set in the most common example of L3 come first. Importance can vary with the use case, so the auditor judges the order using that example as a basis.-
C7alternativesWhen several parameters are alternative ways to set the same feature, the Edit Macro dialog presents them as a unit, and requires one of them when the macro needs it.AllNoIn the Edit Macro dialog, alternative parameters appear together as one feature. When one of them is needed, the feature is marked as required.XWIKI-20944
C8advancedRarely used parameters are marked as advanced.AllNoCheck whether any parameter set in the most common example of L3 is marked as advanced. None should be.-
C9technicalOnly parameters that are meant to be edited are shown.AllNoCompare the fields of the Edit Macro dialog with the parameters used in all the examples of the documentation. For each field that no example uses, try to think of a realistic new example that would use it. If there is none and the field is shown, it is an issue.XWIKI-13363
C13constraintsWhen a parameter only accepts a range or a format, the macro declares it, so that the Edit Macro dialog can reject an invalid value before submitting.AllNoFor each number or formatted text parameter, the accepted range or format is declared in the parameter descriptor, for example with a @Positive or @Pattern annotation, and not only checked when the macro runs. Wiki macro parameters cannot declare constraints yet, see XWIKI-25197: record this once in the cross-macro findings and link it from every affected wiki macro.XWIKI-25182
Information

C3 requires the default to be preselected in its field. A placeholder does not fulfill it: screen readers do not announce it reliably, it often fails contrast requirements, it disappears as soon as the user types, and users mistake it for a value that is already filled in (W3C WAI, Nielsen Norman Group). A mention in the parameter description does not fulfill it either: it means the default is not declared, so the field opens empty, the user has to type the value themselves, and inserting with default values can fail I2.

5. Editing

IDNameDescriptionApplies toMeasureExample
E1wysiwygThe macro renders in the WYSIWYG editor the same way as in view mode, or with a dedicated edit representation that keeps the meaning of the macro.AllInsert the most common example of L3 and compare it in the editor and in view mode. Only editor elements such as the macro frame should differ. A dedicated edit representation that keeps the meaning of the macro, like the one of the Dashboard macro, does not fail E1, but note it in the audit.XWIKI-23036
E2errorsAn invalid parameter value produces a message that says what is wrong and how to fix it, not a stack trace.AllTested with one invalid value per parameter type. The message names the parameter and the expected value.XWIKI-23142
E3nestingThe macro behaves predictably when it is placed inside a list, a table or the content of another macro. When the macro content accepts less than the rest of the page, the restriction is visible: unsupported editing features are disabled inside it, the content description says what it accepts, and pasting unsupported content shows a notification explaining why. See The Content Holds the Main Data.AllInsert the most common example of L3 inside a list item, a table cell and a box macro: each one renders and can be edited as at the top level of the page. For a macro with content, also insert a list, a table and a box macro inside its content: each one either renders and can be edited, or cannot be inserted because the feature is disabled inside the content, with a notification explaining why when it is pasted. Nothing is silently dropped or broken at rendering.XWIKI-23501
E4inline-supportThe inline support the macro declares matches its behavior. A macro that declares inline support works inside a sentence, and a macro that does not declare it has a technical reason to be standalone only.AllInsert the most common example of L3 in the middle of a sentence. If the macro declares inline support, it renders inline, with no error and no block output such as a paragraph or a box breaking the line. If it does not declare it, check whether its output could be inline: if it could, the missing declaration is an issue.XWIKI-15190
E5emptyEmpty content still renders in the editor and stays editable, with no zero-width area that cannot receive the cursor.WrapperThe empty area stays visible after clicking away, and one click puts the cursor in it.XWIKI-23034
E6inplaceThe content is edited in place in the editor, with an editing experience suited to its data, such as rich text or code, not in a text area of the Edit Macro dialog.WrapperThe Edit Macro dialog shows no content text area, and the content can be edited where it is displayed.XWIKI-19978

Get Connected