Tree
์ค์ฒฉ๋ ๋ชฉ๋ก์ ์ ๊ทผ์ฑ์ด ์ข๊ณ ARIA๋ฅผ ์ค์ํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ์ปจํ ์ด๋์ ๋๋ค. ์ ํ, ํผ์นจ, ํค๋ณด๋ ํ์ ๋ฑ ํธ๋ฆฌ์ ์ ์ฒด ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
element
HTMLElementํธ์คํธ ์๋ฆฌ๋จผํธ์ ๋ํ ์ฐธ์กฐ์ ๋๋ค.
id
InputSignal<string>ํธ๋ฆฌ์ ๊ณ ์ ์๋ณ์์ ๋๋ค.
orientation
InputSignal<"vertical" | "horizontal">ํธ๋ฆฌ์ ๋ฐฉํฅ์ ๋๋ค.
multi
InputSignalWithTransform<boolean, unknown>์ฌ๋ฌ ํญ๋ชฉ์ ์ ํํ ์ ์๋์ง ์ง์ ํฉ๋๋ค.
disabled
InputSignalWithTransform<boolean, unknown>ํธ๋ฆฌ์ ๋นํ์ฑํ ์ฌ๋ถ์ ๋๋ค.
selectionMode
InputSignal<"explicit" | "follow">ํธ๋ฆฌ์์ ์ฌ์ฉํ๋ ์ ํ ์ ๋ต์ ๋๋ค.
explicit: ์ฌ์ฉ์๊ฐ ํด๋ฆญํ๊ฑฐ๋ ์คํ์ด์ค๋ฐ๋ฅผ ๋๋ฅด๋ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ํญ๋ชฉ์ ๋ช ์์ ์ผ๋ก ์ ํํฉ๋๋ค.follow: ํฌ์ปค์ค๋ฅผ ๋ฐ์ ํญ๋ชฉ์ด ์๋์ผ๋ก ์ ํ๋ฉ๋๋ค.
focusMode
InputSignal<"roving" | "activedescendant">ํธ๋ฆฌ์์ ์ฌ์ฉํ๋ ํฌ์ปค์ค ์ ๋ต์ ๋๋ค.
roving:tabindex๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฑ ํญ๋ชฉ์ผ๋ก ํฌ์ปค์ค๋ฅผ ์ด๋ํฉ๋๋ค.activedescendant: ํฌ์ปค์ค๋ฅผ ํธ๋ฆฌ ์ปจํ ์ด๋์ ์ ์งํ๊ณaria-activedescendant๋ก ํ์ฑ ํญ๋ชฉ์ ๋ํ๋ ๋๋ค.
wrap
InputSignalWithTransform<boolean, unknown>ํ์์ ์ํํ ์ง ์ง์ ํฉ๋๋ค.
softDisabled
InputSignalWithTransform<boolean, unknown>๋นํ์ฑํ๋ ํญ๋ชฉ์ด ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์๋์ง ์ง์ ํฉ๋๋ค.
true์ด๋ฉด ๋นํ์ฑํ๋ ํญ๋ชฉ๋ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ง๋ง ์ํธ์์ฉํ ์๋ ์์ต๋๋ค.
false์ด๋ฉด ํ์ํ ๋ ๋นํ์ฑํ๋ ํญ๋ชฉ์ ๊ฑด๋๋๋๋ค.
typeaheadDelay
InputSignal<number>์ ๋ ฅ ๋ฌธ์ ๊ฒ์์ด ์ด๊ธฐํ๋๊ธฐ ์ ๊น์ง์ ์ง์ฐ ์๊ฐ(์ด)์ ๋๋ค.
tabIndex
InputSignalWithTransform<number | undefined, string | number | undefined>ํธ๋ฆฌ์ tabindex์ ๋๋ค.
value
ModelSignal<V[]>ํ์ฌ ์ ํ๋ ํญ๋ชฉ์ ๊ฐ์ ๋๋ค.
textDirection
WritableSignal<Direction>ํ ์คํธ ๋ฐฉํฅ์ ๋๋ค.
currentType
InputSignal<"page" | "step" | "location" | "date" | "time" | "true" | "false">aria-current์ ํ์
์
๋๋ค.
ํ์์ฉ ํธ๋ฆฌ์์ ํ์ฌ ํ์ฑ ํญ๋ชฉ์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
activeDescendant
Signal<string | undefined>ํธ๋ฆฌ์ ํ์ฑ ์์ ID์ ๋๋ค.
ngOnDestroy
voidvoidscrollActiveItemIntoView
voidScrollIntoViewOptionsvoid์ค๋ช
์ค์ฒฉ๋ ๋ชฉ๋ก์ ์ ๊ทผ์ฑ์ด ์ข๊ณ ARIA๋ฅผ ์ค์ํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ์ปจํ ์ด๋์ ๋๋ค. ์ ํ, ํผ์นจ, ํค๋ณด๋ ํ์ ๋ฑ ํธ๋ฆฌ์ ์ ์ฒด ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
<ul ngTree [(value)]="selectedItems" [multi]="true">
<ng-template
[ngTemplateOutlet]="treeNodes"
[ngTemplateOutletContext]="{nodes: treeData, parent: tree}"
/>
</ul>
<ng-template #treeNodes let-nodes="nodes" let-parent="parent">
@for (node of nodes; track node.name) {
<li ngTreeItem [parent]="parent" [value]="node.name" [label]="node.name">
{{ node.name }}
@if (node.children) {
<ul role="group">
<ng-template ngTreeItemGroup [ownedBy]="treeItem" #group="ngTreeItemGroup">
<ng-template
[ngTemplateOutlet]="treeNodes"
[ngTemplateOutletContext]="{nodes: node.children, parent: group}"
/>
</ng-template>
</ul>
}
</li>
}
</ng-template>