1.1 #Principles.Directory Directory
A Directory is a static outlined list of pages on a website. It is also commonly known as a “sitemap”. This principle does not have any styles, but it provides the semantic and accessible structure necessary to convey a sitemap.
- author
- Chris Harvey
- updated
DOM:
const {xDirectory} = require('aria-patterns')
let data = {
"@type": "WebPage",
"name": "A 2016 Event",
"url": "https://2016.asce-event.org/",
"hasPart": [
{
"@type": "WebPage",
"name": "Registration",
"url": "https://2016.asce-event.org/registration/",
"hasPart": [
{ "@type": "WebPage", "name": "Why Attend" , "url": "https://2016.asce-event.org/registration/why-attend/" },
{ "@type": "WebPage", "name": "Volunteer" , "url": "https://2016.asce-event.org/registration/volunteer/",
"hasPart": { "@type": "WebPage", "name": "For Students", "url": "https://2016.asce-event.org/registration/volunteer/for-students/" }
}
]
},
{
"@type": "WebPage",
"name": "Location",
"url": "https://2016.asce-event.org/location/"
},
{
"@type": "WebPage",
"name": "Sponsor",
"url": "https://2016.asce-event.org/sponsor/",
"hasPart": [
{ "@type": "WebPage", "name": "Partnering Orgs" , "url": "https://2016.asce-event.org/sponsor/partnering-orgs/" },
{ "@type": "WebPage", "name": "Cooperating Orgs" , "url": "https://2016.asce-event.org/sponsor/cooperating-orgs/" }
]
}
]
}
document.querySelector('header > nav').append(
xDirectory.render(data)
)
Example
Markup: ../../test/out/x-directory.test.html
<header><nav>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/" itemprop="url">
<slot itemprop="name">Home</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/registration/" itemprop="url">
<slot itemprop="name">Registration</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/registration/why-attend/" itemprop="url">
<slot itemprop="name">Why Attend</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/registration/volunteer/" itemprop="url">
<slot itemprop="name">Volunteer</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/registration/volunteer/for-students/" itemprop="url">
<slot itemprop="name">For Students</slot>
</a>
</li>
</ol>
</li>
</ol>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/program/" itemprop="url">
<slot itemprop="name">Program</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/program/short-courses/" itemprop="url">
<slot itemprop="name">Short Courses</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/program/technical-tours/" itemprop="url">
<slot itemprop="name">Technical Tours</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/program/optional-tours/" itemprop="url">
<slot itemprop="name">Optional Tours</slot>
</a>
</li>
</ol>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/location/" itemprop="url">
<slot itemprop="name">Location</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/speakers/" itemprop="url">
<slot itemprop="name">Speakers</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/speakers/distinguished-lecturers/" itemprop="url">
<slot itemprop="name">Distinguished Lecturers</slot>
</a>
</li>
</ol>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/sponsor/" itemprop="url">
<slot itemprop="name">Sponsor</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/sponsor/partnering-orgs/" itemprop="url">
<slot itemprop="name">Partnering Orgs</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/sponsor/cooperating-orgs/" itemprop="url">
<slot itemprop="name">Cooperating Orgs</slot>
</a>
</li>
</ol>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/exhibit/" itemprop="url">
<slot itemprop="name">Exhibit</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/exhibit/exhibitor-list/" itemprop="url">
<slot itemprop="name">Exhibitor List</slot>
</a>
</li>
</ol>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/about/" itemprop="url">
<slot itemprop="name">About</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/contact/" itemprop="url">
<slot itemprop="name">Contact</slot>
</a>
<ol role="directory">
<template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="" itemprop="url">
<slot itemprop="name"></slot>
</a>
</li>
</template>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/contact/submit-feedback" itemprop="url">
<slot itemprop="name">Submit Feedback</slot>
</a>
</li>
<li itemprop="hasPart" itemscope="" itemtype="http://schema.org/WebPage">
<a href="https://2016.asce-event.org/contact/talk-representative" itemprop="url">
<slot itemprop="name">Talk to a Representative</slot>
</a>
</li>
</ol>
</li>
</ol>
</nav></header>
Source:
p-Directory.less, line 7