bcquality/microsoft/knowledge/style/tooltip-required-on-page-fields.md
Jesper Schulz-Wedde db767a0336 Clarify page field caption and tooltip inheritance
Prevent redundant page-level properties by documenting inherited captions and BC24/runtime 13.0 table-field tooltips. Correct companion examples and version-scoped tooltip guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-07 10:41:01 +02:00

2.8 KiB

bc-version domain keywords technologies countries application-area
all
style
tooltip
page-field
source-field
inheritance
aa0218
codecop
accessibility
specifies
al
w1
all

Page fields need an explicit or inherited ToolTip (CodeCop AA0218)

Description

User-facing page fields need tooltip text, but it does not have to be declared on each page control. Starting with BC24 (2024 release wave 1), runtime 13.0 supports ToolTip on table fields, and bound page fields inherit it unless they override it. A non-empty inherited tooltip satisfies the requirement; do not interpret CodeCop AA0218 as a requirement to repeat it on the page.

For targets before runtime 13.0, table-field tooltip inheritance is not available, so user-facing page fields need page-level tooltips. Controls bound to variables or expressions also need page-level tooltips because they have no table field to inherit from. This is UI guidance, not a blanket requirement to add tooltips to every table field, including fields never exposed to users.

AA0218's severity is configured per app and may be downgraded or disabled. Review should still report a genuinely missing tooltip, but absence of a page-level declaration alone is not evidence of a gap. See bound page-field tooltip inheritance.

Best Practice

On runtime 13.0 or later, define shared tooltip text on the table field and omit duplicate page-level properties. Add a page-level ToolTip when no tooltip can be inherited or when the page needs different, context-specific help. Describe what the value shows, conventionally starting with "Specifies" or another clear phrasing.

Before raising a medium-severity finding, check the target runtime, the control's binding, and the source field's tooltip, including dependency symbols when needed. Report a field with neither an explicit nor an inherited tooltip independently of whether AA0218 is active. If the source definition or target runtime is unavailable, do not assume a missing page property means missing tooltip text.

See sample: tooltip-required-on-page-fields.good.al (BC24/runtime 13.0 or later).

Anti Pattern

A user-facing control with no page-level ToolTip and no non-empty source tooltip it can inherit, or a page-level ToolTip = ''; that leaves the effective tooltip empty.

Flagging a bound field that already inherits its tooltip, or adding the same tooltip to every page, is also incorrect: duplicate overrides add maintenance and translation work and prevent source-field tooltip changes from reaching those pages.

See sample: tooltip-required-on-page-fields.bad.al.

References

ToolTip property.