- name
- code-quality-checks
- description
- Quality gates for static HTML/CSS websites (validation, linting, accessibility, link checking)
- license
- Apache-2.0
# Code Quality Checks
## 🔴 AI FIRST Quality Principle
> **Apply the AI FIRST principle: never accept first-pass quality. Minimum 2 iterations. Read all output, improve every section. No shortcuts.**
## Purpose
Enforce quality standards for Riksdagsmonitor static HTML/CSS website.
## Quality Gates
### HTML Validation (HTMLHint)
```bash
npm install -g htmlhint
# Validate all HTML files
htmlhint *.html
# Custom rules (.htmlhintrc)
{
"tagname-lowercase": true,
"attr-lowercase": true,
"attr-value-double-quotes": true,
"doctype-first": true,
"tag-pair": true,
"spec-char-escape": true,
"id-unique": true,
"src-not-empty": true,
"attr-no-duplication": true
}
```
### CSS Validation (CSSLint)
```bash
npm install -g csslint
# Validate CSS
csslint styles.css
# Custom rules (.csslintrc)
{
"adjoining-classes": false,
"box-model": true,
"box-sizing": false,
"duplicate-properties": true,
"empty-rules": true,
"import": true,
"important": false,
"known-properties": true
}
```
### Link Checking (linkinator)
```bash
npm install -g linkinator
# Start local server
python3 -m http.server 8080 &
# Check all links
linkinator http://localhost:8080/ --recurse --silent
```
### Accessibility (axe-core)
```bash
npm install -g @axe-core/cli
# Check accessibility
axe https://riksdagsmonitor.com --tags wcag2a,wcag2aa
```
## Quality Standards
- ✅ 0 HTML validation errors
- ✅ 0 broken links
- ✅ 0 accessibility violations (WCAG 2.1 AA)
- ✅ CSS validation warnings only
- ✅ 4.5:1 color contrast minimum
## References
- **HTMLHint**: https://htmlhint.com/
- **linkinator**: https://github.com/JustinBeckwith/linkinator
- **axe-core**: https://github.com/dequelabs/axe-core-npm
View on GitHub