Aim: Learn how to make web pages—accessible, to use semantic HTML, and well-organised CSS.
Project: Valour Academy agency website is designed to promote and provide information about Valour Academy, a training program for real-life superheroes. The website has a responsive design and it showcases the academy’s mission, team of trainers, training programs, and allows users to get in touch through a contact form.
https://benante.github.io/agency-website/
Incorporated semantic elements like <header>
, <nav>
, <main>
, ` <footer>,
<blockquote>` etc throughout the website. Alt-tags are also included on all the images. See sample code above.
ARIA labels used throughout the site so assistive technologies can provide more meaningful information to users with disabilities, making the website more accessible and usable for everyone. Sections were made focusable with the tabindex attribute to improve keyboard accessibility.
<div class="card" tabindex="0" role="button" aria-pressed="false" aria-describedby="caption1">
For example this code represents a card element that can be interacted with like a button. The role=”button” attribute assigns a button role to the element, and the aria-pressed=”false” attribute indicates the initial state of the button (not pressed). The aria-describedby attribute refers to the caption associated with the card.
To ensure that UI has adequate color contrast, utilized color contrast checking tools to verify that the foreground and background colors comply with the WCAG (Web Content Accessibility Guidelines) standards. This approach ensures that all users can comfortably perceive and read the content.
Used Lighthouse in Chrome DevTools to check if website meets accessibility criteria
@media (max-width: 768px) {
.container {
flex-direction: column;
gap: 0.5em;
}
.card {
width: auto;
}
}
Flexbox used in Teams section
Grid layout used in Programmes section
Used appropriate input types in contact form
<input
type="text"
id="name"
name="name"
placeholder="e.g Peter Parker"
required
aria-required="true"
/>
<input
type="email"
id="email"
name="email"
placeholder="e.g peter_parker@vigilante.com"
required
aria-required="true"
/>
<input
id="tel"
name="tel"
type="tel"
placeholder="012345678"
required
minlength="8"
aria-required="true"
/>
<input type="checkbox" name="subscription" id="checkbox" />