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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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
6 changes: 6 additions & 0 deletions astro.config.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -195,6 +195,12 @@ export default defineConfig({
directory: "products/ontrack/documentation/numbas",
},
},
{
label: "Google Lighthouse Review",
autogenerate: {
directory: "products/ontrack/documentation/google-lighthouse-review",
},
},
],
},
{
Expand Down
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
---
title: Introduction to Lighthouse and OnTrack Report
---

Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more.

- **Performance:** How quickly and efficiently your page loads and functions for users.
- **Accessibility:** How well your page can be used by people with disabilities.
- **Best Practices:** Adherence to web standards and best coding practices for a secure and reliable site.
- **SEO (Search Engine Optimization):** How well your page is structured and optimized for search engines to find and rank.

In this report, I mainly focus on the **Performance** and **Accessibility** results for the **Development Environment** and **Production Environment** (ontrack.deakin.edu.au).

---

## Developmental Environment Report

The following report is conducted for the developmental environment of the OnTrack Project.

- **Performance:** 32/100 – needs significant improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 100/100 – perfect

### Performance
**Overall:** 32/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | 10.9s | <2s |
| Largest Contentful Paint (LCP) | 21.7s | <2.5s |
| Speed Index | 11.1s | <3s |
| Time to Interactive (TTI) | 21.7s | <5s |
| Total Blocking Time (TBT) | 580ms | <200ms |
| Cumulative Layout Shift (CLS) | 0 | Good |

**Main Issues:**
- Heavy JS & CSS: `scripts.js` (6.4MB) and `main.js` (4.8MB) are massive
- Render-Blocking Resources: CSS like `styles.css` delays paint by 1.7s
- Unminified / Uncompressed Assets: Stylesheet wastes ~100KB, no text compression adds 18MB extra payload
- Image Optimisation: Some images not optimized/modern formats
- Long Main-Thread Tasks: Heavy JS tasks block interaction (353ms + 328ms)

### Accessibility
**Score:** 85/100 – good

- Most elements have proper labels and are keyboard-accessible
- Color contrast meets requirements for most text
- Headings are structured logically, aiding screen reader navigation

**Issues:**
- Some form elements missing explicit labels
- A few ARIA attributes are misapplied or redundant
- Minor contrast issues on secondary buttons and links

---

## Production Environment Report

The following report is conducted for the production environment of the OnTrack Project.

- **Performance:** 55/100 – moderate, needs improvement
- **Accessibility:** 85/100 – good
- **Best Practices:** 96/100 – very good
- **SEO:** 91/100 – strong but not perfect

### Performance
**Overall:** 55/100 score

| Metric | Value | Target |
|--------|-------|--------|
| First Contentful Paint (FCP) | ~1.8s | <2s |
| Largest Contentful Paint (LCP) | 3.2s | <2.5s |
| Speed Index | 2.8s | <3s |
| Time to Interactive (TTI) | 3.4s | <5s |
| Total Blocking Time (TBT) | 340ms | <200ms |
| Cumulative Layout Shift (CLS) | 0.005 | Excellent |

**Main Points:**
- Pages are much faster than in development (down from 21s+ to ~3s)
- JavaScript execution and blocking time still drag performance slightly
- Caching could be stronger (some assets lack efficient cache policy)
- Overall load experience is smooth and stable but not fully optimized

**Main Issues:**
- Largest Contentful Paint (3.2s): slightly slower than recommended; improve with next-gen image formats, proper sizing, CDN
- Total Blocking Time (340ms): above target; caused by JS execution
- JavaScript Execution: heavy scripts delay responsiveness
- Caching Policy: not all static assets cached efficiently

### Accessibility
**Score:** 85/100 – good

- Labels, headings, and contrast mostly correct
- Keyboard navigation works across core flows
- Live site maintains accessible use

**Issues:**
- Some inputs missing labels
- Occasional low contrast in certain UI states (hover/focus)
- ARIA role usage could be refined

---

## Running Lighthouse

1. Download **Google Chrome** for Desktop
2. Open Chrome, and go to the URL you want to audit (any URL)
3. Open **Chrome DevTools**
4. Click the **Lighthouse** tab
5. Click **Analyze page load** – leave all audit categories enabled
6. Click **Run audit** – after 30–60 seconds, Lighthouse generates a report

More info: [Lighthouse Overview](https://developer.chrome.com/docs/lighthouse/overview)