Place
A place component displays information about a place, such as its name, address, description, and map or image. It is used in location directories, venue listings, and geographic references.
This headless component uses an <article> element for self-contained place content semantics.
Implementation Notes
- Uses
<article>element for self-contained place semantics aria-labeldescribes the place for screen readers- Contains slots for name, address, description, and image or map
Props
label: string (optional) -- accessible label for the placechildren: slot (required) -- place content...restProps: Any additional HTML attributes
Usage
<Place label="Riverside Clinic, 42 Thames Road, London">
<h3>Riverside Clinic</h3>
<address>42 Thames Road, London SE1 7PB</address>
<p>Walk-in clinic open Monday to Friday, 08:00 to 18:00.</p>
<TelLink href="tel:+442079876543">020 7987 6543</TelLink>
<Image src="/maps/riverside-clinic.png" label="Map showing Riverside Clinic location" />
</Place>
<Place label="Conference Room B, Level 3">
<h3>Conference Room B</h3>
<p>Level 3, East Wing</p>
<p>Capacity: 20 people. Equipped with video conferencing.</p>
</Place>
Keyboard Interactions
- None -- place components are informational, not interactive
ARIA
- Implicit
articlerole from<article>element aria-label-- describes the place for screen readers
When to Use
- Use to display place information such as a clinic address, hospital location, or service area.
- Use when structured place data (name, address, description) needs semantic grouping.
- Use for venue listings, location directories, or geographic references.
- Use in combination with Image for maps or photos, and TelLink for contact numbers.
When Not to Use
- Do not use for organisations -- use Organization instead.
- Do not use for events at a location -- use Event instead.
- Do not use for simple inline addresses -- use a plain
<address>element instead.
Headless
This component provides an <article> element with optional aria-label, with zero visual styling. The consumer is responsible for all CSS including layout, map placement, and typography.
Styles
The consumer provides all CSS styling. The component renders with a .place class for targeting. No default styles are included -- this is a fully headless component.
Testing
- Verify the component renders an
<article>element with classplace - Verify
aria-labelis applied when provided - Verify child content is rendered correctly
- Verify pass-through attributes are applied
Advice
- Designers: Include location name, address, and a visual element (map or photo) for clear identification.
- Developers: Use the
labelprop to identify the place for screen readers. Use semantic<address>elements for postal addresses.
Related components
person— a person component that contains other person-related informationorganization— an organization component that contains other organization-related informationaddress-input— an input for searching or manually entering an address