Commitment to Accessibility
Daniel Mashkov is committed to providing an inclusive web experience for all users, including people with disabilities, in accordance with Israel's Equal Rights for Persons with Disabilities Regulations (Accessibility Adjustments for Service), 5773-2013, and the W3C Web Content Accessibility Guidelines (WCAG) 2.2.
Implemented Features — Full AA Conformance
- Semantic HTML and ARIA tree: <header>, <nav>, <main>, <footer>, and <section> landmarks on every page. ARIA roles (role, aria-label, aria-live, aria-modal) set on all interactive components.
- Full keyboard navigation: All interactive elements reachable via Tab, Enter, Space, and Escape. Focus traps activate in modals and the mobile navigation drawer.
- Color contrast ≥ 4.5:1: All text/background color pairs verified against the 4.5:1 ratio. Primary interface colors (#1dc8cd on #333333) pass.
- Alt text on all images: Decorative images carry alt=""; content images carry specific descriptions.
- Focus management in modals: The exit-intent offer and the booking modal return focus to the triggering element on close.
- Respects prefers-reduced-motion: All CSS and requestAnimationFrame-driven animations, including AnimatedCounter, suppress under prefers-reduced-motion: reduce. The site uses native browser scroll throughout — no smooth-scroll library — and scroll-linked effects are disabled when reduced motion is enabled (resolved 2026-03-08).
- Route change announcements: A visually-hidden aria-live='polite' region (RouteAnnouncer) announces each client-side navigation to screen readers using the new page title — compatible with NVDA, JAWS, and VoiceOver.
- Skip-to-content link: First focusable element on every page jumps to #main-content.
- Full RTL support for Hebrew: CSS logical properties (text-start, ps-/pe-) throughout; right-to-left scrolling verified in Chrome and Safari.
- Autocomplete on form fields: All input fields carry appropriate autocomplete values (name, email, tel).
- Respects your color-scheme preference: The site follows your operating-system light/dark preference — a dark OS appearance loads the dark theme automatically (prefers-color-scheme) and live-updates when you change it. You can also choose light, dark, or the comic theme yourself from the control panel; each theme is tuned for readable text contrast.
WCAG 2.2 AAA Target Criteria — Implemented
SC 2.5.5 (AAA) — Target Size (Enhanced) — Minimum 44×44 CSS px
Touch and click targets of 44×44 CSS pixels implemented via direct sizing and ::after pseudo-element expansion on: project filter pill buttons (.filter-btn) — min-height: 44px; Navbar navigation links — expanded padding in both LTR and RTL orientations; language toggle button — min-width/height: 44px; all primary CTA buttons — py-3 px-6 baseline ensures ≥44px touch area.
SC 2.5.8 (AA) — Target Size (Minimum) at 24×24 CSS pixels — fully conforms.
SC 3.3.7 (AAA) — Redundant Entry — Cognitive Load Reduction
The contact form and lead capture form do not require re-entry of previously submitted information. There is no session timeout, no CAPTCHA, and no security questions. Form field values are preserved across validation error cycles so users never lose their input.
SC 3.3.8 (AAA) — Accessible Authentication (Minimum)
Form fields include: compliant autocomplete attributes, clear placeholder instructions, precise error messages (field names + correction guidance), and password manager compatibility (no autocomplete="off" on sensitive fields). No cognitive test (puzzle, image recognition, or transcription) is required to complete any form on this site.
SC 1.4.6 (AAA) — Contrast (Enhanced) — 7:1 Ratio
Primary body text (#666666 on #ffffff) achieves 5.74:1. Headings (#333333 on #ffffff) achieve 12.63:1.
Known gap: gradient-brand-text clip elements on light backgrounds may fall below 7:1 in some placements — tracked as an open item in the roadmap.
SC 2.4.12 (AAA) — Focus Appearance (Enhanced) — 3:1 Minimum
Focus ring: 2px solid var(--color-primary-deep) with a 2px outline-offset — the ring sits on the page background (the offset lifts it off the control), where --color-primary-deep is 5.77:1 against white, well above the 3:1 AAA minimum. The base brand cyan is only 2.06:1 on white, so the deepened token is used for the indicator.
SC 2.4.11 (AA) — Focus Not Obscured — AA + AAA
No sticky headers, floating banners, or overlays obstruct the focused element during keyboard navigation. The fixed Navbar accounts for its height via scroll-padding-top on the document root.
SC 2.3.3 (AAA) — Animation from Interactions — Vestibular Disorder Protection
The site uses native browser scroll — no smooth-scroll library is loaded. When prefers-reduced-motion: reduce is detected, all CSS and requestAnimationFrame-driven animations, including AnimatedCounter and scroll-linked effects, are suppressed under this media query.
Initially resolved 2026-03-08 for core components. Extended 2026-05-09 to all 15 remaining animated components (FAQ, FeaturedProjects, ProcessTimeline, ProofBlock, WhoIWorkWithStrip, WhyChooseMe, MobileMenu, CookieConsent, ContactForm, CostCalculator, ProjectIntakeForm, LeadMagnetForm, DiagnosticQuiz, ArchitectureDiagram, Tooltip).
Known AAA Gaps
- SC 1.4.6: gradient-brand-text clip in some placement contexts falls below 7:1. Planned fix tracked in roadmap.
- SC 1.2.6: Sign Language: Not provided — no sign language interpretation available for video or audio content.
- SC 2.4.9: Some "Read more" patterns rely on surrounding context for link purpose. Planned fix.
Reporting Accessibility Issues
- Email: info@danielmashkov.com
- Describe the issue, your browser, version, and assistive technology in use
- Acknowledgment within 48 hours; resolution or workaround within 14 business days
Acknowledgment within 48 h · Resolution or workaround within 14 business days
Testing Methodology and Tools
- axe DevTools
- NVDA + Firefox (Windows)
- VoiceOver + Safari (macOS / iOS)
- Keyboard-only navigation
- Chrome Accessibility Inspector
- WCAG Color Contrast Analyzer