How accessibility shapes the way we built this West Palm Beach chimney site
Accessibility is not a feature we added at the end of the project — it shaped the choices we made throughout the build. The site uses semantic HTML elements consistently (article, section, nav, header, footer) so that assistive technology can navigate the page structure without relying on visual cues. Every interactive element has an accessible name, either through visible text or through aria-label. The skip-to-content link appears the moment a keyboard user presses Tab. The color palette was chosen so that text contrasts against backgrounds at WCAG AA minimum (4.5:1 for normal text, 3:1 for large text) and most combinations meet the stricter AAA threshold (7:1).
Form fields throughout the site — the free-estimate form, the booking form, the contact form — use programmatic labels alongside visible placeholders. Placeholders alone are not labels under WCAG 1.3.1, so we add aria-label on each input even when the placeholder makes the purpose visually obvious. This is a small change in code but a meaningful change for screen reader users who would otherwise hear unlabeled controls. The honeypot field used to deter spam bots is properly hidden from screen readers using aria-hidden and tabIndex=-1, so it does not show up as a confusing extra control for keyboard users.
Image alt text is set on every img element across the site. Decorative images that add no information beyond visual decoration get empty alt attributes (alt=''), which tells screen readers to skip them silently. Content images that convey information (a before-and-after chimney photo, a logo, an icon that communicates meaning) get descriptive alt text that conveys the same information non-visually. Icons used as supplementary decoration alongside text labels get aria-hidden so they are not announced redundantly.
Keyboard navigation, focus indicators, and motion sensitivity
Every interactive element on this site is reachable and operable via keyboard alone. The Tab key moves focus forward through interactive elements in logical reading order; Shift-Tab moves backward; Enter activates buttons and links; Space activates buttons; Escape closes overlays and modals. There are no keyboard traps where focus gets stuck inside a region with no way to exit. Custom interactive components (the cookie consent overlay, the lead form, the booking form) all follow the standard keyboard interaction patterns expected of the underlying control types.
Focus indicators are visible by default on every interactive element. We use the browser's default focus ring on most elements and a custom enhanced focus ring on the skip-to-content link, which uses a high-contrast copper color so keyboard users can confirm exactly where focus has landed. Removing focus indicators (a common dark pattern in modern web design) breaks accessibility for keyboard users and is something we explicitly do not do.
Motion sensitivity is respected through the prefers-reduced-motion CSS media query. Customers who have configured their operating system to prefer reduced motion (a setting typically used by people with vestibular disorders, motion sickness, or attention sensitivities) get a version of the site with animations and transitions suppressed. The site remains fully functional in this mode; only the decorative motion is removed.
Compatibility with assistive technology and known limitations
The site has been tested with the major screen readers: VoiceOver on macOS and iOS, NVDA and JAWS on Windows, and TalkBack on Android. The page structure, form interactions, and content navigation work correctly across all of these. Live region announcements (for things like form submission success messages) use proper aria-live attributes so the screen reader announces them automatically when they appear.
Browser zoom up to 200% is supported without horizontal scrolling and without content overlap. Text resizing through the browser zoom or through the operating system's text size preferences is respected; we use rem units instead of fixed pixel sizes for most text so user-preferred sizing scales correctly. Browser-level reader modes (Safari Reader, Firefox Reader) work correctly on the content-heavy pages of the site, giving users an alternative reading experience optimized for their preferences.
Known limitations: the JSON-LD structured data in the page head is read by search engines but not by assistive technology, so the information in those blocks is also represented elsewhere on the page where assistive technology will find it. The decorative SVG patterns used in some hero sections are marked aria-hidden so screen readers do not announce them; the meaningful content from those sections is always available as accompanying text. Third-party embedded content (Google Maps on the contact page, occasional YouTube videos in blog posts) inherits the accessibility characteristics of those platforms, which we cannot modify directly.
How to report an accessibility issue with this site
If you encounter an accessibility issue on this site — a control that does not work with your assistive technology, a contrast problem we missed, a heading structure that does not make sense, anything else — please contact us at the email address listed in the site footer or call the phone number on every page. Describe what you were trying to do, what assistive technology you were using, and what specifically went wrong. We treat accessibility issues with priority and respond within one business day to acknowledge the report and within two weeks to implement a fix.
We do not have a separate accessibility-only email address because we want accessibility reports to go through the same channels as any other customer concern, which keeps them visible to the team rather than getting filed in a queue that nobody monitors. The owner reviews every accessibility report personally and confirms back to the reporter what was found, what was changed, and when the fix was deployed.
If a specific accessibility issue is blocking you from using a feature of the site that you need (for example, the booking form or the free-estimate form), please call the phone number and we will complete the same workflow over the phone with you. We do not want any West Palm Beach customer to be unable to schedule chimney service because of a website accessibility issue, and we have staff ready to handle every interaction through the phone channel if the website channel is not working for you.
