| { | |
| "name": "SemanticData", | |
| "key": { | |
| "int": 668, | |
| "string": "semanticdata" | |
| }, | |
| "extends": "component.json", | |
| "properties": { | |
| "role": { | |
| "type": "uint", | |
| "initialValue": "0", | |
| "key": { | |
| "int": 982, | |
| "string": "role" | |
| }, | |
| "description": "Semantic role (0=none, 1=button, 2=link, etc)" | |
| }, | |
| "label": { | |
| "type": "String", | |
| "initialValue": "''", | |
| "animates": true, | |
| "key": { | |
| "int": 983, | |
| "string": "label" | |
| }, | |
| "description": "Accessible label text", | |
| "bindable": true | |
| }, | |
| "value": { | |
| "type": "String", | |
| "initialValue": "''", | |
| "animates": true, | |
| "key": { | |
| "int": 984, | |
| "string": "semanticvalue" | |
| }, | |
| "description": "Current value text for screen readers (slider percentage, text field content, etc)", | |
| "bindable": true | |
| }, | |
| "hint": { | |
| "type": "String", | |
| "initialValue": "''", | |
| "animates": true, | |
| "key": { | |
| "int": 985, | |
| "string": "semantichint" | |
| }, | |
| "description": "Usage instruction or placeholder text for screen readers", | |
| "bindable": true | |
| }, | |
| "headingLevel": { | |
| "type": "uint", | |
| "initialValue": "0", | |
| "key": { | |
| "int": 986, | |
| "string": "headinglevel" | |
| }, | |
| "description": "Heading level 1-6 (0 = not a heading)" | |
| }, | |
| "traitFlags": { | |
| "type": "uint", | |
| "initialValue": "0", | |
| "key": { | |
| "int": 987, | |
| "string": "traitflags" | |
| }, | |
| "description": "Bitmask declaring node capabilities (expandable, selectable, etc). Traits gate which state flags are meaningful." | |
| }, | |
| "stateFlags": { | |
| "type": "uint", | |
| "initialValue": "0", | |
| "key": { | |
| "int": 988, | |
| "string": "stateflags" | |
| }, | |
| "description": "Bitmask of current semantic state values. Trait-gated states (bits 0-7) are only meaningful when their corresponding trait is set." | |
| }, | |
| "isExpandable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 989, | |
| "string": "isexpandable" | |
| }, | |
| "description": "Trait: node can be expanded/collapsed", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 0 | |
| }, | |
| "isSelectable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 990, | |
| "string": "isselectable" | |
| }, | |
| "description": "Trait: node can be selected/unselected", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 1 | |
| }, | |
| "isCheckable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 991, | |
| "string": "ischeckable" | |
| }, | |
| "description": "Trait: node can be checked/unchecked", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 2 | |
| }, | |
| "isToggleable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 992, | |
| "string": "istoggleable" | |
| }, | |
| "description": "Trait: node can be toggled on/off", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 3 | |
| }, | |
| "isRequirable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 993, | |
| "string": "isrequirable" | |
| }, | |
| "description": "Trait: node can be required/optional", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 4 | |
| }, | |
| "isEnablable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 994, | |
| "string": "isenablable" | |
| }, | |
| "description": "Trait: node has enabled/disabled concept", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 5 | |
| }, | |
| "isFocusable": { | |
| "type": "bool", | |
| "key": { | |
| "int": 995, | |
| "string": "isfocusable" | |
| }, | |
| "description": "Trait: node can receive focus", | |
| "passthroughForBitmask": "traitFlags", | |
| "passthroughBit": 6 | |
| }, | |
| "isExpanded": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 996, | |
| "string": "isexpanded" | |
| }, | |
| "description": "State: node is currently expanded (gated by Expandable trait)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 0 | |
| }, | |
| "isSelected": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 997, | |
| "string": "isselected" | |
| }, | |
| "description": "State: node is currently selected (gated by Selectable trait)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 1 | |
| }, | |
| "isChecked": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 998, | |
| "string": "ischecked" | |
| }, | |
| "description": "State: node is currently checked (gated by Checkable trait). When isMixed is also true, Mixed takes precedence — the node is reported as indeterminate, not checked.", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 2 | |
| }, | |
| "isMixed": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 999, | |
| "string": "ismixed" | |
| }, | |
| "description": "State: checkbox is in indeterminate/mixed state (gated by Checkable trait). Mixed takes precedence over isChecked when both are set.", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 3 | |
| }, | |
| "isToggled": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1000, | |
| "string": "istoggled" | |
| }, | |
| "description": "State: toggle is in the on position (gated by Toggleable trait)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 4 | |
| }, | |
| "isRequired": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1001, | |
| "string": "isrequired" | |
| }, | |
| "description": "State: field is required (gated by Requirable trait)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 5 | |
| }, | |
| "isDisabled": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1002, | |
| "string": "isdisabled" | |
| }, | |
| "description": "State: node is disabled (gated by Enablable trait)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 6 | |
| }, | |
| "isFocused": { | |
| "type": "bool", | |
| "key": { | |
| "int": 1003, | |
| "string": "isfocused" | |
| }, | |
| "description": "State: node currently has focus (gated by Focusable trait, runtime-driven)", | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 7 | |
| }, | |
| "isHidden": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1004, | |
| "string": "ishidden" | |
| }, | |
| "description": "State: node is hidden from accessibility tree", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 8 | |
| }, | |
| "isLiveRegion": { | |
| "type": "bool", | |
| "key": { | |
| "int": 1005, | |
| "string": "isliveregion" | |
| }, | |
| "description": "State: label changes trigger screen reader announcements", | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 9 | |
| }, | |
| "isReadOnly": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1006, | |
| "string": "isreadonly" | |
| }, | |
| "description": "State: text field is read-only", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 10 | |
| }, | |
| "isModal": { | |
| "type": "bool", | |
| "key": { | |
| "int": 1007, | |
| "string": "ismodal" | |
| }, | |
| "description": "State: dialog traps focus within", | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 11 | |
| }, | |
| "isObscured": { | |
| "type": "bool", | |
| "animates": true, | |
| "key": { | |
| "int": 1008, | |
| "string": "isobscured" | |
| }, | |
| "description": "State: text field content is hidden (password)", | |
| "bindable": true, | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 12 | |
| }, | |
| "isMultiline": { | |
| "type": "bool", | |
| "key": { | |
| "int": 1009, | |
| "string": "ismultiline" | |
| }, | |
| "description": "State: text field is multi-line", | |
| "passthroughForBitmask": "stateFlags", | |
| "passthroughBit": 13 | |
| } | |
| } | |
| } |