Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion concepts.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>
<div class="container">
<h1>CHARLES WILLIAMS</h1>
Expand All @@ -24,7 +25,7 @@ <h1>CHARLES WILLIAMS</h1>
</div>
</header>

<main class="container">
<main id="main-content" class="container">
<section class="card">
<h2>Memory Shards: A Nodal Architecture for Resilient Associative Intelligence</h2>
<p><strong>Author:</strong> C. Williams</p>
Expand Down
3 changes: 2 additions & 1 deletion contact.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>
<div class="container">
<h1>CHARLES WILLIAMS</h1>
Expand All @@ -24,7 +25,7 @@ <h1>CHARLES WILLIAMS</h1>
</div>
</header>

<main class="container">
<main id="main-content" class="container">
<section class="card full-width">
<h2>Get in Touch</h2>
<p>For specialized, Referral-Only Consultation and R&amp;D, please reach out via email or explore our open-source research and models.</p>
Expand Down
3 changes: 2 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>
<div class="container">
<h1>CHARLES WILLIAMS Consulting</h1>
Expand All @@ -24,7 +25,7 @@ <h1>CHARLES WILLIAMS Consulting</h1>
</div>
</header>

<main class="container">
<main id="main-content" class="container">
<section id="digital-privacy" class="card">
<h2>Digital Privacy Isn't a Luxury. It’s Your Right.</h2>
<p>In a world that never stops watching, CHARLES WILLIAMS provides the tools, knowledge, and strategies to help everyday people reclaim their digital footprint.</p>
Expand Down
3 changes: 2 additions & 1 deletion products.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>
<div class="container">
<h1>CHARLES WILLIAMS</h1>
Expand All @@ -25,7 +26,7 @@ <h1>CHARLES WILLIAMS</h1>
</div>
</header>

<main class="container">
<main id="main-content" class="container">
<section id="agentic-loop" class="card">
<h2>Localized Agentic Loop AI</h2>
<p>At the core of CHARLES WILLIAMS is our proprietary, model-agnostic agentic loop AI framework. Engineered specifically for robust deployment in zero-trust, disconnected environments where standard cloud-based LLMs fail. By utilizing localized <strong>Edge Processing</strong> on advanced SDR (Software Defined Radio) platforms, this framework enables continuous <strong>Adaptive RF Machine Learning (RFML)</strong> and real-time signal classification.</p>
Expand Down
17 changes: 17 additions & 0 deletions styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,23 @@ body {
background-color: var(--light-bg);
}

.skip-link {
position: absolute;
top: -40px;
left: 0;
background: var(--accent-color);
color: #000000;
padding: 8px;
z-index: 10000;
transition: top 0.2s ease-in-out;
text-decoration: none;
font-weight: bold;
}

.skip-link:focus {
top: 0;
}

a:focus-visible, button:focus-visible, input:focus-visible {
outline: 2px solid var(--accent-color);
outline-offset: 2px;
Expand Down
32 changes: 32 additions & 0 deletions test_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,38 @@ async def run():
await page.screenshot(path="/home/jules/verification/screenshots/error_state.png")
await page.wait_for_timeout(1000)

print("Testing skip link accessibility...")
await page.goto('http://127.0.0.1:8000/index.html', wait_until='domcontentloaded')

try:
# Press Tab to focus the skip link
await page.keyboard.press('Tab')

# Check if it has focus
is_focused = await page.evaluate("document.activeElement.classList.contains('skip-link')")
if is_focused:
print("βœ… Skip link received focus.")
await page.screenshot(path="/home/jules/verification/screenshots/skip_link_focused.png")
else:
print("❌ Skip link did not receive focus.")

# Press Enter to follow the link
await page.keyboard.press('Enter')
await page.wait_for_timeout(500)

# Check if focus moved to main content
active_id = await page.evaluate("document.activeElement.id")
# Usually jumping to a hash anchor makes the target element the :target, but may not shift activeElement unless it has tabindex="-1".
# Let's check the hash.
current_hash = await page.evaluate("window.location.hash")
if current_hash == "#main-content":
print("βœ… Hash updated to #main-content.")
else:
print("❌ Hash not updated.")

except Exception as e:
print("❌ Failed to verify skip link.", e)

await context.close()
await browser.close()

Expand Down