Associate ScadaBridge controls, guidance and editor errors
This commit is contained in:
@@ -39,3 +39,21 @@ Final lifecycle-refined full suite: **1556/1556 passed**, zero skips/failures, `
|
||||
Native focus restoration now verifies document.activeElement after attempting the trigger; still-connected disabled/hidden/unfocusable triggers use heading fallback too. `unusable-trigger-red.json` preserves the reproduced disabled/hidden failures, `unusable-trigger-green.json` verifies all four target conditions and clean lock/inert/tabindex restoration. The retained Python test includes a span made unfocusable while still connected, not merely a replacement/disconnection.
|
||||
|
||||
Published Theme1.0.1 is restored from the official Gitea index into task-local `/tmp/scadabridge-theme101-packages`. Package SHA256995b117b0245577598c91404ed7957c071ebe3413696c8be48b419c9deb1bd5d and runtime DLL parity are in theme101-provenance.json; no stale default cache accepted. Full suite on the patch:1557/1557 passed, zero skips/failures. The added contextual TreeView checkbox regression remains SB03 work; its red failure is retained.
|
||||
|
||||
## SB03 completed source and bounded rendered acceptance (pending parent review)
|
||||
|
||||
Accepted dialog source is isolated in87c882ec; published patch pin is20885b61. Remaining SB03 source stays separate. The generic tree checkbox name was replaced with aria-labelledby targeting that row's visible NodeContent; per-tree scope+encoded key makes names unique for repeated trees. The regression renders two trees and resolves each checkbox's unique name target. Selection/keyboard keys are untouched.
|
||||
|
||||
Repeated ParameterValueForm instances now use unique encoded field IDs, keep visible primitive labels, name composite groups, name list items by canonical path, and link only their existing parse-error map. A red duplicate-ID regression and linked-error correction test passed. FlowDebugger tests' hard-coded param-* ID selectors were migrated to data-param-path while preserving every typed-payload, state, poll, validity and live/replay assertion. The first full integration run failed28 tests on old selectors; it is retained as sb03-final-suite.log. After selector-only corrections all1559 passed.
|
||||
|
||||
Monaco receives an additive AriaLabel creation option and updates it through existing setEditorOption when changed. All seven consumer callsites supply domain context, including parameter JSON paths. Its actual native accessible textbox (role=textbox) reports the supplied name. The hidden readonly IME textarea is intentionally aria-hidden/tabindex=-1; first rendered detector incorrectly included it, first-results.json preserves that false-positive failure. Corrected rendered results exclude aria-hidden nodes and confirm the actual textbox name. No app UI change was made to fix that measurement.
|
||||
|
||||
form-help-coverage.json inventories all46 form-text blocks:42 linked field/group descriptions/errors,4 informational notes (log metadata, recompile action explanation, no-running-instance and no-connection empty states). Conditional help/error IDs are emitted only with matching content. Existing OPC/Mx/ServiceLevel validator field matching and parameter parse-error behavior are preserved. Transport passphrase mismatch now announces its existing error and clears describedby/invalid on correction; its existing export test still verifies selection/user identity/export payload. API key/method checkbox groups get group-level guidance, without changing any policy or selected collection. Aggregate errors remain aggregate; fields are not falsely marked invalid by unrelated submission failures.
|
||||
|
||||
Rendered matrix: actual SMS and SMTP form components plus repeated Mx/parameter/tree and actual Monaco components at1440/390, six cases pass (forms-browser/results.json, six screenshots). No duplicate IDs, unresolved for/describedby targets, unnamed exposed native fields, or browser errors in those samples. Visual inspection confirms labels/forms retain compact incumbent layout. This directly composed synthetic fixture is not authenticated application route coverage; repository reads are empty and every non-Get proxy operation rejects. No save/test-send/verify/trust/deploy was clicked.
|
||||
|
||||
Source-backed inventory plus rendered representative samples and the full integration suite establish this batch's acceptance; they do not imply an assistive-technology certification or complete deployed role matrix. SB00's full-route baseline and Secrets package adoption remain separate pending gates. Frozen source hashes are sb03-source-freeze.json. No SB04+ implementation yet.
|
||||
|
||||
### Final SB03 peer correction
|
||||
|
||||
Parent review found the raw-JSON escape-hatch error was not described by its composite host. The existing parse-error state now sets invalidity/description on the named `.param-json-editor` group; Monaco retains its domain-specific textbox name. The invalid JSON → valid JSON correction regression fails for the missing role/relationship first, then passes with related ParameterValueForm/Monaco/TreeView tests (`raw-json-association-red.log`, `raw-json-association-green.log`). No validator/value projection change. Last full frozen suite1559/1559 is retained; only this narrow relationship and one regression followed it, with parent approval to use focused verification rather than rerun all tests.
|
||||
|
||||
Reference in New Issue
Block a user