Conversation
Wijmo's Column.describedById was being used as a side-channel to store the OutSystems column uniqueId. Wijmo renders describedById as an aria-describedby attribute pointing to a non-existent element, producing 'Broken ARIA reference' errors (flagged by WAVE) on every filterable column header and filter button. Relocate the uniqueId off describedById onto an isolated expando on the Wijmo column instance, accessed through Helper.GetColumnUniqueId / SetColumnUniqueId. Column-to-OutSystems-column mapping (ClickEvent, DirtyMark) is preserved, with the existing binding fallback for autogenerated columns unchanged. No more aria-describedby is emitted, clearing all Broken ARIA reference errors.
Update package.json to use postcss ^8.5.15 (was ^8.5.6). This is a dependency version bump to incorporate patch fixes and improvements in the PostCSS package from a security vulnerability.
… bump A previous automated dependency bump raised typedoc to ^0.28.19 (and typedoc-umlclass to ^0.10.2) without a compatible TypeScript. typedoc@0.28 requires typescript@>=5.0 (peer) while the project is pinned to typescript@^4.9.5, and it also breaks typedoc-plugin-merge-modules@4.1.0 (peer typedoc 0.23.x||0.24.x). Since package-lock.json is gitignored, CI resolves fresh from package.json on every 'npm install', so this conflict broke CI with ERESOLVE. Revert typedoc to ^0.23.28 and typedoc-umlclass to ^0.7.1 (last versions compatible with TypeScript 4.9.5 and the merge-modules plugin). typedoc is a dev-only docs tool, so there is no runtime impact.
…eDoc rollback) Document the two decisions made in this PR: - ADR-0005: relocating the column uniqueId off Wijmo's describedById onto an isolated expando to eliminate the dangling aria-describedby (Broken ARIA reference) errors. - ADR-0006: rolling back the incompatible typedoc 0.28 bump to the last TypeScript-4.9-compatible versions to restore npm install in CI. Also backfill the missing ADR-0004 entry in the ADR log and realign the table.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR fixes the "Broken ARIA reference" accessibility errors (reported by WAVE) on Data Grid column headers and filter buttons, and unblocks CI by resolving a pre-existing
npm installdependency conflict.What was happening
Accessibility (primary)
aria-describedbyattribute pointing to a non-existent element (e.g.aria-describedby="0.lhfuia0d7am"), producing WAVE "Broken ARIA reference" errors (2 per filterable column).uniqueIdin Wijmo'sColumn.describedByIdproperty purely as a side-channel for column lookup. Wijmo rendersdescribedByIdas a realaria-describedbyattribute, but no matching description element was ever created — so the IDREF dangled.aria-describedbytargets; plain Wijmo FlexGrid (same version) emits noaria-describedby, confirming the defect lives in the wrapper, not Wijmo.CI / dependencies
npm installfailed in CI withERESOLVE. A prior automated bump (af11b3b) raisedtypedocto^0.28.19(andtypedoc-umlclassto^0.10.2) without a compatible TypeScript.typedoc@0.28peer-requirestypescript@>=5.0, but the project is pinned totypescript@^4.9.5; it also breakstypedoc-plugin-merge-modules@4.1.0(peertypedoc 0.23.x||0.24.x).package-lock.jsonis gitignored, CI resolves fresh frompackage.jsonon every install, so this conflict broke every PR (pre-existing ondev, surfaced — not caused — by this PR).What was done
Accessibility fix
uniqueIdto Wijmo'sdescribedById(removed fromColumnConfig.getProviderConfig()and theIColumnProviderConfigsinterface), so noaria-describedbyattribute is emitted.uniqueIdonto an isolated expando on the Wijmo column instance, accessed exclusively through new helpersHelper.GetColumnUniqueId/Helper.SetColumnUniqueId(single source of truth, no scattered casts).AbstractProviderColumn.build()and read byClickEventandDirtyMark; the existingbindingfallback for autogenerated columns is unchanged, so column-to-OutSystems-column mapping is behaviorally identical.Cleanning→Cleaning,not need→no need).TypeDoc rollback (CI fix)
typedoc^0.28.19→^0.23.28andtypedoc-umlclass^0.10.2→^0.7.1(the last versions compatible with TypeScript 4.9.5 andtypedoc-plugin-merge-modules@4.1.0), restoring a peer-coherent set and a cleannpm install.typedocis dev-only docs tooling — no runtime impact. Kept TypeScript at^4.9.5(a TS major upgrade is out of scope here and warrants its own PR).Dependency bump (bundled)
^8.5.15.Documentation
ADR-0005(Broken ARIA reference fix) andADR-0006(TypeDoc rollback) underdocs/adr/, and backfilled the missingADR-0004entry in the ADR log.Test Steps
npm installresolves with noERESOLVEandbuild-n-testpasses. (npm run docsstill generates with the reverted TypeDoc.)Screenshots
Before:
After:
Checklist