diff --git a/courses/223015c/slides/2025-12-20-termin-1-geschichte-grundlagen-html.md b/courses/223015c/slides/2025-12-20-termin-1-geschichte-grundlagen-html.md index 8e36754..efb3db7 100644 --- a/courses/223015c/slides/2025-12-20-termin-1-geschichte-grundlagen-html.md +++ b/courses/223015c/slides/2025-12-20-termin-1-geschichte-grundlagen-html.md @@ -1276,8 +1276,238 @@ https://developer.mozilla.org/de/docs/Web/HTML/Reference/Elements/input https://developer.mozilla.org/de/docs/Web/HTML/Reference/Elements/dialog + --- + + +# "Barrierefreiheit" +## a11y – Accessibility + +--- + + + +# Wie nutzen Menschen das Web? + +| Eingabe | Nutzungsweise | +|---------|---------------| +| **Maus** | Klicken, Scrollen | +| **Tastatur** | Tab-Navigation, Enter, Pfeiltasten | +| **Screenreader** | Vorlesen von Inhalten (NVDA, VoiceOver, JAWS) | +| **Sprachsteuerung** | "Klicke auf Anmelden" | +| **Augensteuerung** | Eye-Tracking | +| **Switch-Geräte** | Ein-/Aus-Schalter | + +→ **Nicht alle nutzen Maus + Bildschirm!** + + + +--- + + + +# Warum "Barrierefreiheit"? + +**Rechtlich:** +- EU: European Accessibility Act (seit Juni 2025 in Kraft!) +- DE: BITV 2.0 (Behörden), Privatwirtschaft betroffen + +**Ethisch:** +- Teilhabe für alle Menschen +- Digitale Inklusion + +**Praktisch:** +- Bessere UX für **alle** (SEO, Mobile, ältere Menschen) +- Größerer Markt (~15% der Bevölkerung) + + + +--- + +# WCAG: Der Standard + +**W**eb **C**ontent **A**ccessibility **G**uidelines + +**4 Prinzipien (POUR):** + +| Prinzip | Bedeutung | +|---------|-----------| +| **Perceivable** | Wahrnehmbar – Inhalte müssen erkennbar sein | +| **Operable** | Bedienbar – Funktionen müssen nutzbar sein | +| **Understandable** | Verständlich – Inhalte müssen klar sein | +| **Robust** | Robust – Funktioniert mit verschiedenen Technologien | + + + +--- + +# Perceivable: Wahrnehmbar + +**Textalternativen für Nicht-Text:** +```html +Unser Team bei der Weihnachtsfeier 2024 +``` + +**Kontrast:** Mindestens 4.5:1 für Text + +**Untertitel:** Videos brauchen Captions + +**Responsive:** Inhalte bei 200% Zoom nutzbar + + + +--- + +# Operable: Bedienbar + +**Tastaturzugänglich:** +```css +/* Fokus-Indikator NIE entfernen! */ +:focus { + outline: 2px solid blue; + outline-offset: 2px; +} + +/* Wenn custom styling: */ +button:focus-visible { + box-shadow: 0 0 0 3px rgba(0, 100, 255, 0.5); +} +``` + +**Genug Zeit:** Keine automatischen Timeouts ohne Warnung + +**Keine Blitze:** Nichts blinkt mehr als 3x pro Sekunde + + + +--- + +# Understandable: Verständlich + +**Sprache angeben:** +```html + +``` + +**Konsistente Navigation:** Gleiche Elemente an gleicher Stelle + +**Fehler erklären:** +```html + + +``` + + + +--- + +# Robust: Technisch solide + +**Semantisches HTML:** +```html + +
Klick mich
+ + + +``` + +**ARIA nur wenn nötig:** +```html + +
+ + +
+``` + + + +--- + + + +# Barrieren im Netz vermeiden (a11y) + +**Tastatur-Test:** +- Alle Funktionen nur mit Tab + Enter nutzbar? +- Fokus immer sichtbar? +- Logische Tab-Reihenfolge? + +**Screenreader-Test:** +- VoiceOver (Mac): `Cmd + F5` +- NVDA (Windows): Gratis-Download + +**Tools:** +- axe DevTools, WAVE (Browser-Extensions) +- Lighthouse (in Chrome DevTools) + + + + +--- + + # Fragen & Diskussion diff --git a/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md b/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md index 0851cd4..12be498 100644 --- a/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md +++ b/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md @@ -129,17 +129,17 @@ Hochschule der Medien Stuttgart -# Teil 1: Rechner verbinden -## Netzwerk-Grundlagen +# Teil 1: Grundbegriffe +## Netzwerk und Internet --- # Warum Rechner verbinden? -- Daten und Informationen teilen -- Zusammenarbeiten & Kollaboration -- Kommunizieren -- Ressourcen teilen (Drucker, Speicher, andere Geräte) +* Daten und Informationen teilen +* Zusammenarbeiten & Kollaboration +* Ressourcen teilen (Drucker, Speicher, andere Geräte) +* **Kommunikation** --- @@ -158,72 +158,6 @@ Internet nutzt beides: TCP = verbindungsorientiert, UDP = verbindungslos --- - - -# Das OSI-Modell - -**7 Schichten der Netzwerkkommunikation:** - -| Schicht | Name | Beispiel | -|---------|------|----------| -| 7 | Anwendung | HTTP, FTP, SMTP | -| 6 | Darstellung | Verschlüsselung, Kompression | -| 5 | Sitzung | Sessions | -| 4 | Transport | TCP, UDP | -| 3 | Vermittlung | IP, Routing | -| 2 | Sicherung | Ethernet, MAC | -| 1 | Bitübertragung | Kabel, WLAN | - - - ---- - - - -# TCP/IP: Die Praxis - -**Das Internet nutzt TCP/IP (4 Schichten):** - -| TCP/IP | Entspricht OSI | Protokolle | -|--------|----------------|------------| -| Anwendung | 5-7 | HTTP, DNS, SMTP | -| Transport | 4 | TCP, UDP | -| Internet | 3 | IP | -| Netzzugang | 1-2 | Ethernet, WLAN | - -**TCP/IP = Transmission Control Protocol / Internet Protocol** - - - ---- - # IP-Adressen **Jeder Rechner im Netzwerk braucht eine Adresse** @@ -254,9 +188,6 @@ NAT = Network Address Translation | `192.168.x.x` | Private Adressen (Heimnetz) | | `10.x.x.x` | Private Adressen (Firmen) | -**Localhost = "Ich selbst"** -→ Perfekt für Web-Entwicklung! - + --- -# Teil 1: Netzwerke -## Wie Daten reisen +# DNS: Domain Name System +## Das Telefonbuch des Internets --- -# Wiederholung: OSI-Modell +# Das Problem -**Merksatz:** "**A**lle **d**eutschen **S**tudierenden **t**rinken **v**erschiedene **S**orten **B**ier/Brause" +**Menschen:** `www.hdm-stuttgart.de` +**Computer:** `https://212.132.79.37:443` -| Schicht | Name | Merksatz | -|---------|------|----------| -| 7 | **A**nwendung | **A**lle | -| 6 | **D**arstellung | **d**eutschen | -| 5 | **S**itzung | **S**tudierenden | -| 4 | **T**ransport | **t**rinken | -| 3 | **V**ermittlung | **v**erschiedene | -| 2 | **S**icherung | **S**orten | -| 1 | **B**itübertragung | **B**ier/Brause | +**DNS** = Domain Name System +→ Übersetzt Namen in IP-Adressen + +--- + +# DNS-Hierarchie + +``` + (Root) + . + / | \ + / | \ + .de .org .com + / \ + hdm-stuttgart google + | | + www mail +``` + +**FQDN:** `www.hdm-stuttgart.de.` (mit Punkt am Ende!) + + + +--- + +# DNS-Auflösung + +``` +1. Browser fragt lokalen DNS-Resolver +2. Resolver fragt Root-Server → ".de ist bei..." +3. Resolver fragt .de-Server → "hdm-stuttgart bei..." +4. Resolver fragt hdm-Server → "www = 212.132.79.37" +5. Resolver cached Antwort +6. Browser verbindet zu 212.132.79.37 +``` + +**Caching:** Antworten werden gespeichert +→ Schneller bei wiederholten Anfragen + + + +--- + +# DNS-Records + +| Typ | Bedeutung | Beispiel | +|-----|-----------|----------| +| **A** | IPv4-Adresse | `www → 212.132.79.37` | +| **AAAA** | IPv6-Adresse | `www → 2001:db8::1` | +| **CNAME** | Alias | `blog → www.example.com` | +| **MX** | Mail-Server | `@ → mail.example.com` | +| **TXT** | Text (Verifikation) | `"v=spf1..."` | + + + +--- + +# URLs & Domains + +**URL** = Uniform Resource Locator + +``` +https://www.example.com:443/pfad/seite.html?suche=test#kapitel2 +└─┬──┘ └──────┬──────┘└┬┘ └──────┬──────┘ └───┬────┘ └──┬───┘ +Protokoll Hostname Port Pfad Query Fragment +``` + +| Begriff | Erklärung | +|---------|-----------| +| **Domain** | `example.com` (registrierter Name) | +| **Subdomain** | `www`, `mail`, `api` (Prefix) | +| **Hostname** | `www.example.com` (vollständig) | +| **Port** | Standard: 80 (HTTP), 443 (HTTPS) | + + + +--- + + + +# Netzwerke +## Theorie und Praxis + + + + +--- + + + +# Das OSI-Modell: Die Theorie + +**7 Schichten der Netzwerkkommunikation:** + +| Schicht | Name | Beispiel | +|---------|------|----------| +| **7** | **Anwendung** | **HTTP/S, FTP, SMTP** | +| 6 | Darstellung | Verschlüsselung, Kompression | +| 5 | Sitzung | Sessions | +| 4 | Transport | TCP, UDP | +| 3 | Vermittlung | IP, Routing | +| 2 | Sicherung | Ethernet, MAC | +| 1 | Bitübertragung | Kabel, WLAN | + + + +--- + + + +# TCP/IP: Die Praxis + +**Das Internet nutzt TCP/IP (4 Schichten):** + +| TCP/IP | Entspricht OSI | Protokolle | +|--------|----------------|------------| +| **Anwendung** | **5-7** | **HTTP, DNS, SMTP** | +| Transport | 4 | TCP, UDP | +| Internet | 3 | IP | +| Netzzugang | 1-2 | Ethernet, WLAN | + +**TCP/IP = Transmission Control Protocol / Internet Protocol** + +https://www.ietf.org/rfc/rfc793.txt + + --- @@ -369,6 +466,7 @@ Internet nutzt TCP/IP --- + # Schicht 1: Bitübertragung **Physikalische Übertragung von Bits** @@ -469,10 +567,12 @@ UDP für Echtzeit (Video-Call, Gaming) # TCP: 3-Way-Handshake +### Verbindungsorientiert + ``` Client Server │ │ - │──── SYN (Seq=100) ──────────>│ + │──── SYN (Seq=100) ───────────>│ │ │ │<─── SYN-ACK (Seq=300, Ack=101)│ │ │ @@ -501,7 +601,7 @@ ACK bestätigt Empfang - **Synchronisation** → Wiederaufnahme nach Abbruch **Beispiele:** -- Web-Sessions (Cookies, Tokens) +- Web-Sessions (Cookies, Tokens, OAuth) - RPC (Remote Procedure Call) - NetBIOS @@ -569,118 +669,25 @@ HTTPS = HTTP + TLS: Verschlüsselung, Authentifizierung, Integrität PRÜFUNGSRELEVANT: Wichtige Ports auswendig, HTTP vs. HTTPS, was macht DNS --> ---- - - - -# DNS: Das Telefonbuch des Internets --- -# Das Problem +# Merksatz: OSI-Modell -**Menschen:** `www.hdm-stuttgart.de` -**Computer:** `212.132.79.37` +"**A**lle **d**ualen **S**tudierenden **t**rinken **v**erschiedene **S**orten **B**ier/Brause" -**DNS** = Domain Name System -→ Übersetzt Namen in IP-Adressen +| Schicht | Name | Merksatz | +|---------|------|----------| +| 7 | **A**nwendung | **A**lle | +| 6 | **D**arstellung | **d**ualen | +| 5 | **S**itzung | **S**tudierenden | +| 4 | **T**ransport | **t**rinken | +| 3 | **V**ermittlung | **v**erschiedene | +| 2 | **S**icherung | **S**orten | +| 1 | **B**itübertragung | **B**ier/Brause | - ---- - -# DNS-Hierarchie - -``` - (Root) - . - / | \ - / | \ - .de .org .com - / \ - hdm-stuttgart google - | | - www mail -``` - -**FQDN:** `www.hdm-stuttgart.de.` (mit Punkt am Ende!) - - - ---- - -# DNS-Auflösung - -``` -1. Browser fragt lokalen DNS-Resolver -2. Resolver fragt Root-Server → ".de ist bei..." -3. Resolver fragt .de-Server → "hdm-stuttgart bei..." -4. Resolver fragt hdm-Server → "www = 212.132.79.37" -5. Resolver cached Antwort -6. Browser verbindet zu 212.132.79.37 -``` - -**Caching:** Antworten werden gespeichert -→ Schneller bei wiederholten Anfragen - - - ---- - -# DNS-Records - -| Typ | Bedeutung | Beispiel | -|-----|-----------|----------| -| **A** | IPv4-Adresse | `www → 212.132.79.37` | -| **AAAA** | IPv6-Adresse | `www → 2001:db8::1` | -| **CNAME** | Alias | `blog → www.example.com` | -| **MX** | Mail-Server | `@ → mail.example.com` | -| **TXT** | Text (Verifikation) | `"v=spf1..."` | - - - ---- - -# URLs & Domains - -**URL** = Uniform Resource Locator - -``` -https://www.example.com:443/pfad/seite.html?suche=test#kapitel2 -└─┬──┘ └──────┬──────┘└┬┘ └──────┬──────┘ └───┬────┘ └──┬───┘ -Protokoll Hostname Port Pfad Query Fragment -``` - -| Begriff | Erklärung | -|---------|-----------| -| **Domain** | `example.com` (registrierter Name) | -| **Subdomain** | `www`, `mail`, `api` (Prefix) | -| **Hostname** | `www.example.com` (vollständig) | -| **Port** | Standard: 80 (HTTP), 443 (HTTPS) | - - --- @@ -1086,233 +1093,6 @@ vw/vh = Viewport (sichtbarer Bereich) -# "Barrierefreiheit" -## a11y – Accessibility - ---- - - - -# Wie nutzen Menschen das Web? - -| Eingabe | Nutzungsweise | -|---------|---------------| -| **Maus** | Klicken, Scrollen | -| **Tastatur** | Tab-Navigation, Enter, Pfeiltasten | -| **Screenreader** | Vorlesen von Inhalten (NVDA, VoiceOver, JAWS) | -| **Sprachsteuerung** | "Klicke auf Anmelden" | -| **Augensteuerung** | Eye-Tracking | -| **Switch-Geräte** | Ein-/Aus-Schalter | - -→ **Nicht alle nutzen Maus + Bildschirm!** - - - ---- - - - -# Warum "Barrierefreiheit"? - -**Rechtlich:** -- EU: European Accessibility Act (seit Juni 2025 in Kraft!) -- DE: BITV 2.0 (Behörden), Privatwirtschaft betroffen - -**Ethisch:** -- Teilhabe für alle Menschen -- Digitale Inklusion - -**Praktisch:** -- Bessere UX für **alle** (SEO, Mobile, ältere Menschen) -- Größerer Markt (~15% der Bevölkerung) - - - ---- - -# WCAG: Der Standard - -**W**eb **C**ontent **A**ccessibility **G**uidelines - -**4 Prinzipien (POUR):** - -| Prinzip | Bedeutung | -|---------|-----------| -| **Perceivable** | Wahrnehmbar – Inhalte müssen erkennbar sein | -| **Operable** | Bedienbar – Funktionen müssen nutzbar sein | -| **Understandable** | Verständlich – Inhalte müssen klar sein | -| **Robust** | Robust – Funktioniert mit verschiedenen Technologien | - - - ---- - -# Perceivable: Wahrnehmbar - -**Textalternativen für Nicht-Text:** -```html -Unser Team bei der Weihnachtsfeier 2024 -``` - -**Kontrast:** Mindestens 4.5:1 für Text - -**Untertitel:** Videos brauchen Captions - -**Responsive:** Inhalte bei 200% Zoom nutzbar - - - ---- - -# Operable: Bedienbar - -**Tastaturzugänglich:** -```css -/* Fokus-Indikator NIE entfernen! */ -:focus { - outline: 2px solid blue; - outline-offset: 2px; -} - -/* Wenn custom styling: */ -button:focus-visible { - box-shadow: 0 0 0 3px rgba(0, 100, 255, 0.5); -} -``` - -**Genug Zeit:** Keine automatischen Timeouts ohne Warnung - -**Keine Blitze:** Nichts blinkt mehr als 3x pro Sekunde - - - ---- - -# Understandable: Verständlich - -**Sprache angeben:** -```html - -``` - -**Konsistente Navigation:** Gleiche Elemente an gleicher Stelle - -**Fehler erklären:** -```html - - -``` - - - ---- - -# Robust: Technisch solide - -**Semantisches HTML:** -```html - -
Klick mich
- - - -``` - -**ARIA nur wenn nötig:** -```html - -
- - -
-``` - - - ---- - - - -# Barrieren im Netz vermeiden (a11y) - -**Tastatur-Test:** -- Alle Funktionen nur mit Tab + Enter nutzbar? -- Fokus immer sichtbar? -- Logische Tab-Reihenfolge? - -**Screenreader-Test:** -- VoiceOver (Mac): `Cmd + F5` -- NVDA (Windows): Gratis-Download - -**Tools:** -- axe DevTools, WAVE (Browser-Extensions) -- Lighthouse (in Chrome DevTools) - - - ---- - - - # Teil 3: Layouts (optional) ## Flexbox & mehr