Files
cremote/Technical_Findings_AMFElectric.md
Josh at WLTechBlog ccd8c77a3e remove sensory tools
2025-10-07 11:47:47 -05:00

451 lines
15 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Technical Findings - AMF Electric Accessibility Assessment
## Detailed Test Results and Raw Data
**Assessment Date:** October 7, 2025
**URL Tested:** https://amfelectric.com/
---
## HOMEPAGE ASSESSMENT - RAW DATA
### Axe-Core Automated Test Results
**Test Configuration:**
- Library: axe-core v4.8.0
- Standard: WCAG 2.1 Level AA
- Rules: wcag2a, wcag2aa, wcag21aa
**Summary:**
- ✅ Passes: Multiple (see detailed output)
- ❌ Violations: 2 serious issues
- ⚠️ Incomplete: Requires manual review
- Inapplicable: Tests not relevant to this page
#### Violation 1: Color Contrast
**Rule ID:** `color-contrast`
**Impact:** Serious
**WCAG:** 1.4.3 Contrast (Minimum) - Level AA
**Count:** 5 elements
**Affected Elements:**
1. `.da11y-screen-reader-text` - Skip link
2. `#menu-main > .pay-now.et_pb_menu_page_id-8276.menu-item-8276 > a[role="link"]` - Pay Invoice button
3. `.et_pb_cta_1 > .et_pb_button_wrapper > .et_pb_button.et_pb_promo_button[role="button"]` - CTA button
**Remediation:** https://dequeuniversity.com/rules/axe/4.8/color-contrast
#### Violation 2: Link Name
**Rule ID:** `link-name`
**Impact:** Serious
**WCAG:** 2.4.4 Link Purpose, 4.1.2 Name, Role, Value - Level A
**Count:** 1 element
**Affected Element:**
- `.icon` - Facebook social media link
**Remediation:** https://dequeuniversity.com/rules/axe/4.8/link-name
---
### Contrast Check - Comprehensive Results
**Test Parameters:**
- Selector: All text elements
- Standard: WCAG 2.1 Level AA
- Threshold: 4.5:1 (normal text), 3:1 (large text)
**Summary Statistics:**
- Total Elements Checked: 217
- WCAG AA Pass: 146 (67.3%)
- WCAG AA Fail: 71 (32.7%)
- WCAG AAA Pass: 82 (37.8%)
- WCAG AAA Fail: 135 (62.2%)
#### Top 20 Critical Contrast Failures
| # | Selector | Text Sample | Ratio | Required | Foreground | Background |
|---|----------|-------------|-------|----------|------------|------------|
| 1 | :nth-of-type(1) | "Skip to content" | 2.55:1 | 4.5:1 | rgb(0,84,122) | rgb(0,0,0) |
| 2 | :nth-of-type(26) | "Electrical Contractors..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 3 | :nth-of-type(27) | "Electrical Contractors..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 4 | :nth-of-type(28) | "Electrical Contractors..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 5 | :nth-of-type(29) | "Electrical Contractors..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 6 | :nth-of-type(30) | "Electrical Contractors..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 7 | :nth-of-type(32) | "Residential" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 8 | :nth-of-type(34) | "Commercial" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 9 | :nth-of-type(36) | "Industrial" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 10 | :nth-of-type(38) | "Blog" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 11 | :nth-of-type(40) | "Projects..." | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 12 | :nth-of-type(42) | "Conveyors" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 13 | :nth-of-type(44) | "Café Design" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 14 | :nth-of-type(46) | "Contact Us" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 15 | :nth-of-type(48) | "Pay Your Invoice" | 4.00:1 | 4.5:1 | rgb(255,255,255) | rgb(255,0,0) |
| 16 | :nth-of-type(49) | "Pay Your Invoice" | 4.00:1 | 4.5:1 | rgb(255,255,255) | rgb(255,0,0) |
| 17 | :nth-of-type(50) | "Employment Application" | 3.66:1 | 4.5:1 | rgb(102,102,102) | rgb(0,0,0) |
| 18 | :nth-of-type(85) | "Commercial Electrical..." | 1.00:1 | 4.5:1 | rgb(255,255,255) | rgb(255,255,255) |
| 19 | :nth-of-type(86) | "Commercial Electrical..." | 1.00:1 | 4.5:1 | rgb(255,255,255) | rgb(255,255,255) |
| 20 | :nth-of-type(87) | "Commercial Electrical..." | 1.00:1 | 3.0:1 | rgb(255,255,255) | rgb(255,255,255) |
#### Contrast Failure Patterns
**Pattern 1: Navigation Menu (rgb(102,102,102) on rgb(0,0,0))**
- Ratio: 3.66:1 (needs 4.5:1)
- Affected: 25+ menu items
- Fix: Change to rgb(153,153,153) or lighter
**Pattern 2: Hero Section White-on-White**
- Ratio: 1.00:1 (needs 4.5:1)
- Affected: Main heading and subheading
- Fix: Add proper background or change text color to black
**Pattern 3: Industrial Section (rgb(102,102,102) on rgb(224,153,0))**
- Ratio: 2.39:1 (needs 4.5:1)
- Affected: Multiple paragraphs
- Fix: Use darker text or lighter background
**Pattern 4: "Learn More" Buttons (rgb(242,91,58) on rgb(255,255,255))**
- Ratio: 3.32:1 (needs 4.5:1)
- Affected: 6+ buttons across page
- Fix: Darken to rgb(200,67,31) or darker
**Pattern 5: Testimonials (rgb(51,51,51) on rgb(0,0,0))**
- Ratio: 1.66:1 (needs 4.5:1)
- Affected: Section headings
- Fix: Lighten text significantly
---
### Keyboard Navigation Test Results
**Test Configuration:**
- Method: Automated tab order analysis
- Focus indicator detection: CSS computed styles
- Keyboard trap detection: Focus management analysis
**Summary:**
- Total Interactive Elements: 36
- Keyboard Focusable: 20
- Not Focusable: 0 (all elements are focusable)
- Missing Focus Indicator: 20 (100% of focusable elements)
- Keyboard Traps: 0 (no traps detected)
- Tab Order Issues: 0 (logical order maintained)
#### Tab Order Sequence
| Index | Element | Role | Text | Focusable | Focus Indicator |
|-------|---------|------|------|-----------|-----------------|
| 1 | a.skip-link.da11y-screen-reader-text | link | "Skip to content" | ✅ | ❌ |
| 2 | a.skip-link.sr-only | link | "Skip to main content" | ✅ | ❌ |
| 3 | a | link | "" (logo) | ✅ | ❌ |
| 4 | a.et_pb_button.et_pb_promo_button | button | "Contact Us" | ✅ | ❌ |
| 5 | a.da11y-submenu | link | "Electrical Contractors" | ✅ | ❌ |
| 6 | a | link | "Blog" | ✅ | ❌ |
| 7 | a.da11y-submenu | link | "Projects" | ✅ | ❌ |
| 8 | a | link | "Contact Us" | ✅ | ❌ |
| 9 | a | link | "Pay Your Invoice" | ✅ | ❌ |
| 10 | a | link | "Employment Application" | ✅ | ❌ |
| 11 | a.et_pb_button.et_pb_promo_button | button | "Learn More" | ✅ | ❌ |
| 12 | a.et_pb_button.et_pb_promo_button | button | "Learn More" | ✅ | ❌ |
| 13 | a.et_pb_button.et_pb_promo_button | button | "Learn More" | ✅ | ❌ |
| 14 | a.icon | button | "Facebook" | ✅ | ❌ |
| 15 | a | link | "Shortcut Solutions" | ✅ | ❌ |
**Issue Details:**
- **Type:** no_focus_indicator
- **Severity:** HIGH
- **Count:** 20 elements
- **Description:** Interactive elements lack visible focus indicators
- **Fix:** Add CSS `:focus` styles with visible outline or box-shadow
---
### Accessibility Tree Analysis
**Test Configuration:**
- Method: Chrome DevTools Accessibility API
- Include Contrast Data: Yes
- Depth: Full tree
**Key Findings:**
#### Landmarks Detected:
- ✅ Banner (header)
- ✅ Main content area
- ✅ Contentinfo (footer)
- ✅ Navigation
#### Skip Links:
- ✅ "Skip to content" (href: #main-content)
- ✅ "Skip to main content" (href: #main-content)
- ⚠️ Both have contrast issues
#### ARIA Usage:
- Live regions detected: 2 (polite and assertive)
- Role overrides: Multiple (buttons styled as links)
- Hidden elements: Properly implemented
#### Semantic Structure:
- Proper use of semantic HTML elements
- Heading hierarchy: Requires manual verification
- List structures: Properly marked up
- Form elements: None on homepage
---
### Page Information
**Document Properties:**
- **Title:** "Commercial and Industrial Electrical Contractors | AMF Electric"
- **URL:** https://amfelectric.com/
- **Language:** Not verified (requires HTML inspection)
- **Charset:** UTF-8
- **Content Type:** text/html
- **Loading State:** Complete
- **Ready State:** Complete
**Meta Information:**
- Last Modified: 10/07/2025 15:11:31
- Domain: amfelectric.com
- Protocol: HTTPS ✅
- Cookies Enabled: Yes
- Online Status: Yes
---
### Links Extracted (35 total)
#### Navigation Links:
1. Skip to content (#main-content)
2. Skip to main content (#main-content)
3. Home (/)
4. Contact Us (/contact-us/)
5. Electrical Contractors (#electrical-contractors-services)
6. Residential (residential-electric-services/)
7. Commercial (commercial-electric-services/)
8. Industrial (industrial-design-services/)
9. Blog (/blog/)
10. Projects (#projects-menu)
11. Conveyors (projects/industrial-conveyor-project/)
12. Café Design (projects/st-louis-cafe-design-for-reckitt/)
13. Contact Us (contact-amf/)
14. Pay Your Invoice (external PayTrace link)
15. Employment Application (employment-application-a-m-f-electrical-contractors/)
#### Social Media:
16. Facebook (https://www.facebook.com/AMF-Electrical-Contractors-Inc-177452688932824/)
#### Footer:
17. Shortcut Solutions (https://shortcut.solutions) - Web design credit
**Link Analysis:**
- Total: 35 links
- Internal: 33
- External: 2
- Anchor links: 2
- Missing text: 1 (Facebook icon)
---
### Site Performance Issues
**Critical Finding:** Multiple pages failed to load during assessment
#### Failed Navigation Attempts:
| URL | Timeout (seconds) | Error | Attempts |
|-----|-------------------|-------|----------|
| /electrical-contractors/residential-electric-services/ | 10 | Loading timeout | 1 |
| /electrical-contractors/commercial-electric-services/ | 10 | Loading timeout | 1 |
| /electrical-contractors/industrial-design-services/ | 10 | Loading timeout | 1 |
| /contact-amf/ | 20 | Partial load, blank content | 1 |
| /blog/ | 20 | Blank page | 1 |
| / (return navigation) | 20 | ERR_CONNECTION_TIMED_OUT | 1 |
**Performance Metrics:**
- Homepage initial load: ~10 seconds
- Subsequent navigation: Consistently fails
- Contact page: Loads but displays no content
- Blog page: Loads but completely blank
**Impact:**
- Prevents comprehensive accessibility assessment
- Violates basic usability requirements
- Creates accessibility barrier for all users
- Particularly impacts users with:
- Slow internet connections
- Assistive technologies (which may be slower)
- Cognitive disabilities (timeout causes confusion)
- Mobile devices (limited bandwidth)
**Recommended Actions:**
1. Server performance audit
2. Database query optimization
3. CDN implementation
4. Image optimization
5. Code minification
6. Caching strategy
7. Load testing under various conditions
---
## TESTING TOOLS USED
### Primary Tools:
1. **web_page_accessibility_report_cremotemcp**
- Comprehensive automated assessment
- Combines axe-core, contrast, keyboard, and form tests
- Token-efficient summary format
- ~4k tokens per page
2. **web_screenshot_cremotemcp**
- Full-page screenshot capture
- Visual documentation
- Evidence for violations
3. **web_contrast_check_cremotemcp**
- Detailed color contrast analysis
- Tests all text elements
- WCAG AA and AAA compliance
4. **web_keyboard_test_cremotemcp**
- Keyboard navigation testing
- Focus indicator detection
- Tab order analysis
- Keyboard trap detection
5. **get_accessibility_tree_cremotemcp**
- Chrome Accessibility API
- ARIA validation
- Semantic structure analysis
- Contrast data annotation
6. **web_extract_links_cremotemcp**
- Link inventory
- Text analysis
- Broken link detection
7. **web_page_info_cremotemcp**
- Document metadata
- Loading state
- Performance indicators
### Tool Configuration:
- **Browser:** Chromium (container-based)
- **Axe-core Version:** 4.8.0
- **WCAG Standard:** 2.1 Level AA
- **Timeout:** 5-30 seconds (varied by tool)
- **Viewport:** Desktop default
---
## ACCESSIBILITY TREE SAMPLE
```
RootWebArea: "Commercial and Industrial Electrical Contractors | AMF Electric"
├── generic (body)
│ ├── link: "Skip to content" [contrast available]
│ ├── link: "Skip to main content" [contrast available]
│ ├── generic (page wrapper)
│ │ ├── banner (header)
│ │ │ ├── generic (top bar)
│ │ │ │ ├── link: Logo [no text]
│ │ │ │ ├── button: "Contact Us"
│ │ │ │ └── navigation
│ │ │ │ ├── list
│ │ │ │ │ ├── listitem: link "Electrical Contractors"
│ │ │ │ │ ├── listitem: link "Blog"
│ │ │ │ │ ├── listitem: link "Projects"
│ │ │ │ │ ├── listitem: link "Contact Us"
│ │ │ │ │ ├── listitem: link "Pay Your Invoice"
│ │ │ │ │ └── listitem: link "Employment Application"
│ │ ├── main
│ │ │ ├── article
│ │ │ │ ├── main (duplicate - potential issue)
│ │ │ │ │ ├── heading: "Commercial Electrical Contractors..."
│ │ │ │ │ ├── paragraph: "Well Beyond Business As Usual..."
│ │ │ │ │ ├── section: Residential Electric
│ │ │ │ │ ├── section: Industrial Design
│ │ │ │ │ ├── section: Commercial Electric
│ │ │ │ │ └── section: Client Testimonials
│ │ └── contentinfo (footer)
│ │ ├── list: Social media
│ │ │ └── listitem: button "Facebook" [missing text]
│ │ └── paragraph: Copyright
│ ├── generic: aria-live="polite"
│ └── generic: aria-live="assertive"
```
---
## WCAG SUCCESS CRITERIA MAPPING
### Tested and Failed:
- **1.1.1** Non-text Content - PARTIAL (icon link)
- **1.4.3** Contrast (Minimum) - FAIL (71 violations)
- **2.4.4** Link Purpose (In Context) - PARTIAL (icon link)
- **2.4.7** Focus Visible - FAIL (20 violations)
- **4.1.2** Name, Role, Value - PARTIAL (icon link)
### Tested and Passed:
- **2.1.1** Keyboard - PASS
- **2.4.1** Bypass Blocks - PARTIAL (present but contrast issues)
- **2.4.2** Page Titled - PASS
- **2.4.3** Focus Order - PASS
- **3.2.1** On Focus - PASS
### Not Tested (Requires Additional Tools/Pages):
- 1.2.x (Media - no video on homepage)
- 1.3.x (Structure - requires manual review)
- 1.4.4 (Resize Text - requires zoom testing)
- 1.4.5 (Images of Text - requires OCR)
- 1.4.10 (Reflow - requires responsive testing)
- 1.4.11 (Non-text Contrast - requires UI component testing)
- 1.4.12 (Text Spacing - requires CSS override testing)
- 1.4.13 (Content on Hover/Focus - requires interaction testing)
- 2.2.x (Timing - no timed content observed)
- 2.3.x (Seizures - requires animation analysis)
- 2.5.x (Input Modalities - requires interaction testing)
- 3.1.x (Language - requires HTML inspection)
- 3.2.3-3.2.4 (Consistency - requires multi-page testing)
- 3.3.x (Forms - no forms on homepage)
- 4.1.3 (Status Messages - no dynamic content observed)
---
## NEXT STEPS FOR COMPLETE ASSESSMENT
1. **Resolve Site Performance Issues**
- Enable access to all pages
- Optimize load times
- Fix navigation failures
2. **Test Remaining Pages:**
- Residential services
- Commercial services
- Industrial services
- Contact page (with form testing)
- Blog
- Project pages
3. **Additional Testing:**
- Zoom/resize (1.4.4, 1.4.10)
- Responsive design
- Media accessibility (if videos exist)
- Cross-page consistency
- Form validation and error handling
- Dynamic content and status messages
4. **Manual Testing:**
- Screen reader testing (JAWS, NVDA, VoiceOver)
- Keyboard-only navigation (full user journey)
- Heading structure review
- Content readability
- Cognitive load assessment
---
**Document Prepared:** October 7, 2025
**Assessment Tool:** Cremote MCP Accessibility Suite
**Data Format:** Raw technical findings for development team