diff --git a/astro/astro.config.mjs b/astro/astro.config.mjs
index d19ee487..90e6dcbf 100644
--- a/astro/astro.config.mjs
+++ b/astro/astro.config.mjs
@@ -70,7 +70,7 @@ export default defineConfig({
// Social Media
'facebook', 'instagram', 'linkedin', 'rss-fill', 'tiktok', 'globe', 'mastodon', 'twitter',
// Descriptive
- 'gift-fill', 'pencil-fill', 'people-fill', 'person-fill', 'puzzle-fill', 'stopwatch-fill', 'tools',
+ 'bag-fill', 'file-earmark-text-fill', 'gift-fill', 'palette-fill', 'pencil-fill', 'people-fill', 'person-fill', 'puzzle-fill', 'stopwatch-fill', 'tools', 'universal-access-circle',
],
// CoreUI Brands
cib: [
diff --git a/astro/package-lock.json b/astro/package-lock.json
index 7fc33fe2..2a8f2509 100644
--- a/astro/package-lock.json
+++ b/astro/package-lock.json
@@ -391,6 +391,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -404,6 +405,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -417,6 +419,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -430,6 +433,7 @@
"cpu": [
"wasm32"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -448,6 +452,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -458,6 +463,7 @@
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
"integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
+ "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -469,6 +475,7 @@
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
"integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
+ "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -479,6 +486,7 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
"integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
+ "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -759,6 +767,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -772,6 +781,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -798,6 +808,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -829,6 +840,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
diff --git a/astro/src/components/navigation/FooterLinkList.astro b/astro/src/components/navigation/FooterLinkList.astro
index 1ca8917e..41118d88 100644
--- a/astro/src/components/navigation/FooterLinkList.astro
+++ b/astro/src/components/navigation/FooterLinkList.astro
@@ -34,7 +34,7 @@ import { Icon } from "astro-icon/components";
role="img"
aria-hidden="true"
/>)
- }{ branded ? : name}
+ }{ branded ? : name}
: {
icon && ()
- }{ branded ? : name}
+ }{ branded ? : name}
}
))}
@@ -58,5 +58,10 @@ import { Icon } from "astro-icon/components";
height: 1em;
width: auto;
margin-right: 0.2em;
+
+ & + :global(.fix-left) {
+ display: inline;
+ margin-left: -0.33em;
+ }
}
\ No newline at end of file
diff --git a/astro/src/content.config.ts b/astro/src/content.config.ts
index d626772d..3c8b2f44 100644
--- a/astro/src/content.config.ts
+++ b/astro/src/content.config.ts
@@ -30,6 +30,16 @@ const blogs = defineCollection({
}),
});
+const courses = defineCollection({
+ loader: glob({ pattern: "**/[^_]*.{md,mdx}", base: "./src/content/courses" }),
+ schema: z.object({
+ title: z.string(),
+ icon: z.string(),
+ order: z.int().positive(),
+ cost: z.int().nonnegative(),
+ }),
+});
+
const markdown = defineCollection({
loader: glob({ pattern: "**/[^_]*.{md,mdx}", base: "./src/content/markdown" }),
});
@@ -255,6 +265,7 @@ export const collections = {
atotw,
blogs,
collaborators,
+ courses,
daf,
// escapeRoomKits,
escapeRoomThemes,
diff --git a/astro/src/content/courses/comprehensive-web.mdx b/astro/src/content/courses/comprehensive-web.mdx
new file mode 100644
index 00000000..add8d6cf
--- /dev/null
+++ b/astro/src/content/courses/comprehensive-web.mdx
@@ -0,0 +1,10 @@
+---
+title: Comprehensive Web Accessibility
+icon: 'bi:globe'
+order: 3
+cost: 6000
+---
+
+import ExternalLink from "@components/ExternalLink.astro";
+
+This 12-hour training covers the ins and outs of web accessibility for content creators, designers, developers, and project managers. It includes an introduction to accessibility laws and the Web Content Accessibility Guidelines (WCAG) standards, functional needs related to accessibility, and assistive technology. We will walk through how to meet the requirements for WCAG 2.2 A & AA standards. We typically break this course up into 2-3 hour segments with homework in between.
diff --git a/astro/src/content/courses/document.md b/astro/src/content/courses/document.md
new file mode 100644
index 00000000..f3bf0811
--- /dev/null
+++ b/astro/src/content/courses/document.md
@@ -0,0 +1,8 @@
+---
+title: Document Accessibility
+icon: 'bi:file-earmark-text-fill'
+order: 6
+cost: 1000
+---
+
+This 60-minute training covers how to create accessible documents, emails, and spreadsheets in Microsoft and Google environments.
diff --git a/astro/src/content/courses/intro-digital.md b/astro/src/content/courses/intro-digital.md
new file mode 100644
index 00000000..fe80a2a7
--- /dev/null
+++ b/astro/src/content/courses/intro-digital.md
@@ -0,0 +1,8 @@
+---
+title: Intro to Digital Accessibility
+icon: 'bi:universal-access-circle'
+cost: 1500
+order: 1
+---
+
+This 90-minute training briefly covers accessibility standards and laws. It then focuses on web accessibility through the lens of the needs of people with disabilities. Learn how to create accessible content that broadens your audience and impact.
\ No newline at end of file
diff --git a/astro/src/content/courses/intro-ta11y.mdx b/astro/src/content/courses/intro-ta11y.mdx
new file mode 100644
index 00000000..d79bbeda
--- /dev/null
+++ b/astro/src/content/courses/intro-ta11y.mdx
@@ -0,0 +1,10 @@
+---
+title: Intro to Accessibility Evaluations
+icon: ta11y-logo
+cost: 0
+order: 2
+---
+
+import ExternalLink from "@components/ExternalLink.astro"
+
+This 30-minute training introduces you to _ta11y.org_, a free accessibility evaluation tool. We will introduce you to the learning library and evaluation opportunities available.
diff --git a/astro/src/content/courses/procurement.md b/astro/src/content/courses/procurement.md
new file mode 100644
index 00000000..3d6743f3
--- /dev/null
+++ b/astro/src/content/courses/procurement.md
@@ -0,0 +1,8 @@
+---
+title: Procuring Accessibly
+icon: 'bi:bag-fill'
+order: 7
+cost: 3000
+---
+
+This 3-hour training is designed for anyone purchasing accessible digital products and hardware. It covers an introduction to accessibility, how to read and verify a Voluntary Product Accessibility Template (VPAT), and additional information about writing accessibility requirements into contracts.
diff --git a/astro/src/content/courses/social-media.md b/astro/src/content/courses/social-media.md
new file mode 100644
index 00000000..d534f785
--- /dev/null
+++ b/astro/src/content/courses/social-media.md
@@ -0,0 +1,8 @@
+---
+title: Social Media Accessibility
+icon: 'bi:people-fill'
+cost: 1500
+order: 4
+---
+
+This 90-minute training covers how to make your content accessible on most major social media platforms. It will also discuss how accessibility principles can help expand your reach. Learn how to create accessible media content that broadens your audience and impact.
diff --git a/astro/src/content/courses/visualizations.md b/astro/src/content/courses/visualizations.md
new file mode 100644
index 00000000..a8789635
--- /dev/null
+++ b/astro/src/content/courses/visualizations.md
@@ -0,0 +1,8 @@
+---
+title: Complex Images, Maps, and Data Visualizations
+icon: 'bi:palette-fill'
+order: 5
+cost: 2000
+---
+
+This 2-hour hands-on training provides a deep dive into describing images and creating text and other alternatives for images and visualizations, starting from the basics and working through how to handle maps and data visualizations. A picture may be worth 1,000 words, but we will teach you how to create efficient and meaningful descriptions and alternatives.
diff --git a/astro/src/content/navigation/projects.json b/astro/src/content/navigation/projects.json
index 3c650776..afd1cc02 100644
--- a/astro/src/content/navigation/projects.json
+++ b/astro/src/content/navigation/projects.json
@@ -25,6 +25,9 @@
"name": "Accessible Escape Room",
"branded": true,
"href": "/escape-room/"
+ }, {
+ "name": "Accessibility Training",
+ "href": "/training/"
}, {
"name": "Digital Evaluations",
"href": "/evaluations/"
diff --git a/astro/src/images/colored-hero/classroom-blue.png b/astro/src/images/colored-hero/classroom-blue.png
new file mode 100644
index 00000000..b92e3604
Binary files /dev/null and b/astro/src/images/colored-hero/classroom-blue.png differ
diff --git a/astro/src/images/colored-hero/classroom.png b/astro/src/images/colored-hero/classroom.png
new file mode 100644
index 00000000..57db2c2c
Binary files /dev/null and b/astro/src/images/colored-hero/classroom.png differ
diff --git a/astro/src/images/quilia-1-aA2Fadydc-unsplash.jpg b/astro/src/images/quilia-1-aA2Fadydc-unsplash.jpg
new file mode 100644
index 00000000..b43635e6
Binary files /dev/null and b/astro/src/images/quilia-1-aA2Fadydc-unsplash.jpg differ
diff --git a/astro/src/pages/images/og/pages/[...name].ts b/astro/src/pages/images/og/pages/[...name].ts
index 26c43fcb..9614a8d4 100644
--- a/astro/src/pages/images/og/pages/[...name].ts
+++ b/astro/src/pages/images/og/pages/[...name].ts
@@ -148,6 +148,27 @@ Your donation goes towards supporting our programs and technology to build disab
position: ["center", "start"],
},
},
+ training: {
+ title: "Accessibility Training",
+ description:
+ "Accessible Community provides training courses on digital accessibility that are informed by professional expertise and lived experience with the diverse disabilities in our community.",
+ // border: {
+ // color: [0, 255, 0],
+ // width: 72,
+ // side: 'inline-start',
+ // },
+ logo: {
+ path: "./public/images/favicon.png",
+ size: [72],
+ },
+ bgImage: {
+ path: "./src/images/colored-hero/classroom-blue.png",
+ fit: "fill",
+ position: ["end", "end"],
+ },
+ padding: 60,
+ cacheDir: false,
+ },
volunteer: {
title: "Volunteer at Accessible Community",
description:
diff --git a/astro/src/pages/training/index.astro b/astro/src/pages/training/index.astro
new file mode 100644
index 00000000..dd3ff437
--- /dev/null
+++ b/astro/src/pages/training/index.astro
@@ -0,0 +1,109 @@
+---
+import type { PageMetadata } from "@lib/types";
+
+import { getOpenGraphImageData } from "@lib/og-image";
+import { getCollection, render } from "astro:content";
+import { sortBy } from "lodash-es";
+
+import components from "@lib/mdx";
+import Branding from "../../components/Branding.astro";
+import FlexColumn from "../../components/FlexColumn.astro";
+import Hero from "../../components/Hero.astro";
+import { Icon } from "astro-icon/components";
+import Layout from "../../layouts/Layout.astro";
+import Row from "../../components/Row.astro";
+import ShadowBoxSection from "../../components/ShadowBoxSection.astro";
+import ThemedSection from "../../components/ThemedSection.astro";
+
+import heroBg from "../../images/colored-hero/classroom.png";
+
+const courses = sortBy(
+ await getCollection("courses"),
+ [(course) => course.data.order],
+);
+
+const title = "Accessibility Training";
+const metadata: PageMetadata = {
+ title,
+ description: "Accessibility Training Courses that Accessible Community offers",
+ image: getOpenGraphImageData(Astro.site, "pages", "training"),
+};
+---
+
+
+
+
+
+ Accessibility training
+ that accommodates you.
+
+
+
+ Getting started in accessibility? Learn more with our Tip of the Week.
+
+
+
+
+
+ About our training.
+
+
+ Accessible Community provides training courses on digital accessibility that are informed by professional expertise and lived experience with the diverse disabilities in our community. Our offerings range from a focused 60-minute, topic-centered instruction to in-depth, multi-day training sessions. We provide our training virtually unless other arrangements are made. As many people within your organization as you desire can attend, and you are welcome to record the training for internal use. We offer 1-2 hours of additional support through our office hours with the purchase of a course.
+
+
+
+ Please contact us for more information or to schedule a course.
+