Compare commits

..

19 commits
main ... main

Author SHA1 Message Date
7607035224 correcting link 2025-07-09 09:48:43 +02:00
b5b219e35e adding timetable to website 2025-07-09 09:47:05 +02:00
01b8059141 edits on timetable 2025-07-09 09:20:46 +02:00
95639e0d44 edits on timetable 2025-06-24 22:41:09 +02:00
34bc23629e edits on timetable 2025-06-23 13:56:51 +02:00
3f22b55760 first timetable 2025-06-21 23:56:14 +02:00
eb91c54995 adding timetable 2025-06-20 23:27:56 +02:00
Tobi
46fe5ab719 fixing closing button issue 2025-06-20 22:36:28 +02:00
Tobi
98c356b201 reverting changes 2025-06-20 18:43:37 +02:00
990c946e40 Merge pull request 'fixing-accessibility-issues' (#14) from wohfab/fedi.camp_Website:fixing-accessibility-issues into main
Reviewed-on: KABI/fedi.camp_Website#14
2025-06-19 10:27:39 +00:00
wohfab
c56c866f79 fix: fixing some types, indentation inconsistencies and semantic HTML 2025-05-15 14:51:24 +02:00
wohfab
c174fd93dd fix: adding accessible name to close buttons (WCAG 2.4.6 Heading and Labels) 2025-05-15 14:28:42 +02:00
wohfab
26449eedb1 typo: fixing some typos, indentation inconsistencies, etc. 2025-05-15 14:22:22 +02:00
wohfab
82afe42465 fix: adding main landmark to body (WCAG 2.4.1 Bypass Blocks) 2025-05-15 14:05:32 +02:00
wohfab
ea45fd3767 typo: capital letter in HTML tag 2025-05-15 13:50:35 +02:00
wohfab
f2f7030c99 fix: removing line break elements (<br>) and replacing by semantic elements (p, ul) (WCAG 1.3.1 Info and Relationships) 2025-05-15 13:48:44 +02:00
wohfab
77871367c0 fix: moving fediverse verification into link tags inside head, so they are not keyboard focusable while hidden (WCAG 1.3.1 Info and Relationships) 2025-05-15 13:40:19 +02:00
wohfab
91da541ccf fix: adding main website language (WCAG 3.1.1 Language of Page) 2025-05-15 13:27:08 +02:00
wohfab
af56aecf44 fix: removing disabling of zoom (WCAG 1.4.4 Resize Text) 2025-05-15 13:26:01 +02:00
4 changed files with 93 additions and 152 deletions

View file

@ -289,24 +289,21 @@
var $this = $(this); var $this = $(this);
// Close. // Handle the × button click and touchend for mobile compatibility
$('<div class="close">Close</div>') $this.find('button.close').each(function() {
.appendTo($this) var closeHandler = function(event) {
.on('click', function() {
location.hash = '';
});
// Handle the × button click
$this.find('button.close').on('click', function(event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
location.hash = ''; location.hash = '';
}); };
$(this).on('click', closeHandler);
$(this).on('touchend', closeHandler);
});
// Prevent clicks from inside article from bubbling. // Prevent clicks from inside article from bubbling.
$this.on('click', function(event) { $this.on('click', function(event) {
event.stopPropagation(); event.stopPropagation();
}); });
}); });

View file

@ -3,14 +3,18 @@
<p><a href="#showmetheway" class="button">Anfahrt</a></p> <p><a href="#showmetheway" class="button">Anfahrt</a></p>
<a href="https://matrix.to/#/#fedicamp:hyteck.de" class="button">Matrix-Raum</a><br><br><br> <a href="https://matrix.to/#/#fedicamp:hyteck.de" class="button">Matrix-Raum</a><br><br><br>
<!--
<h2 class="major">Call for Participation</h2> <h2 class="major">Call for Participation</h2>
<p>Um den Timetable zu füllen, brauchen wir Eure Workshops, Vorträge, Aktivitäten - was Ihr schon immer gern mit anderen Menschen machen wolltet.<p> <p>Um den Timetable zu füllen, brauchen wir Eure Workshops, Vorträge, Aktivitäten - was Ihr schon immer gern mit anderen Menschen machen wolltet.<p>
<p><a href="https://orga.fedi.camp/index.php/apps/forms/s/C8d7C9N2FfYgLzPqHCDEKN97" class="button enabled">Call for Participation</a></p> <p><a href="https://orga.fedi.camp/index.php/apps/forms/s/C8d7C9N2FfYgLzPqHCDEKN97" class="button enabled">Call for Participation</a></p>
<p>Das Camp ist eine Unconference das heißt: Es findet das statt, was ihr daraus macht! <p>Das Camp ist eine Unconference das heißt: Es findet das statt, was ihr daraus macht!
Unabhängig von der Camp-Oraga: Bereitet gerne Eure Workshops, Vorträge oder Aktivitäten vor und tragt sie in das Pad Call for Participation (CfP) ein. Für eure Vorbereitung können wir euch BigBlueButton-Räume, Speicherplatz und alles Weitere zur Verfügung stellen einfach kurz per Mail Bescheid geben. Alle freuen sich auf spannende Informationen und das Mitmachen. </p> Unabhängig von der Camp-Oraga: Bereitet gerne Eure Workshops, Vorträge oder Aktivitäten vor und tragt sie in das Pad Call for Participation (CfP) ein. Für eure Vorbereitung können wir euch BigBlueButton-Räume, Speicherplatz und alles Weitere zur Verfügung stellen einfach kurz per Mail Bescheid geben. Alle freuen sich auf spannende Informationen und das Mitmachen. </p>
-->
<h2 class="major">Timetable</h2> <h2 class="major">TimeTable</h2>
<p>Aktuell haben wir einige Sessions eingesammelt. Ein Timetable wird erstellt und zum Camp veröffentlicht.<p> <p>Hier findet Ihr den aktuellen TimeTable / Fahrplan zu den Sessions, Vorträgen und Workshops<p>
<p><a href="/timetable" class="button enabled">Timetable</a></p>
<p>Das Fedicamp ist eine Unconferenz, d.h. es findet das statt was Leute tun möchten, mitbringen und gemeinsam erleben möchten. Der Timetable wird auch wärend des Camps angepasst - ist also nicht in Stein gemeiselt. Bringt gern weitere Themen auch spontan ein.</p>
<p>Wir starten am Mittwoch 16.07. nachmittags bzw. mit dem Abendessen und enden am Sonntag 20.07. gegen Mittag.</p> <p>Wir starten am Mittwoch 16.07. nachmittags bzw. mit dem Abendessen und enden am Sonntag 20.07. gegen Mittag.</p>
<hr> <hr>

View file

@ -25,31 +25,29 @@ As days please only use the following days:
const eventData = { const eventData = {
Wednesday: { Wednesday: {
12: { 10: {
'Lunch table': { 'Camp ground': {
event: 'Breakfast', event: 'Mit Yoga kraftvoll in den Tag starten',
description: 'All-day breakfast', description: 'Morgendlicher Start auf der Wiese vom Gasthof Wiese mit gemeinsamen Yoga-und AtemÜbungen. Bitte bringt eure Matte, bequeme Kleidung und ggf. eine Decke mit.',
},
},
12: {
'Stage room': {
event: 'CoC, Charta, Hausregeln fürs Fedicamp',
description: 'Workshop: Erarbeitung der Charta für das FediCamp. Ansprechperson: @Tealk@rollenspiel.social',
}, },
/* other events */
}, },
14: { 14: {
'Camp ground': { 'Camp ground': {
event: 'Microblog und Permacomputing', event: 'Botanischer Exkurs Wendland',
description: 'Microblog und Permacomputing - Sustainability (CO2 etc.) - Überlegungen zu verschiedenen (ActivityPub) Ansätzen. Was ist mit dem Jonasschen Prinzip Verantwortung überhaupt drin? Ansprechperson für die Session ist @mro@digitalcourage.social', description: 'Wir entdecken gemeinsam die Pflanzenwelt rund um den Gasthof Wiese - zu Fuß, mit dem Rad. Ansprechperson: greensoul',
}, },
/* other events */
}, },
16: {
18: { 'Stage room': {
'Camp ground': { event: 'Rollenspiel meets Fediverse',
event: 'Diskussionsrunde Schnittstellen', description: 'Workshop: Ausarbeitung einer Agenda wie man Rollenspieler von GAFAM weg bekommt. Wir haben ja einige Leute da die öfters Vorträge halten, da würd ich gern mal die best ofs mitnehmen. Ansprechperson: @Tealk@rollenspiel.social',
description: 'Diskussionsrunde zu offenen Schnittstellen und wie wir das Fediverse resilient gegen Großkonzerne machen. Ansprechperson für die Session ist @reticuleena@digitalcourage.social.',
}, },
'Lunch table': {
event: 'Foodbar',
description: 'Abendessen und Snacks. Planung findet am Veranstaltungstag statt.',
},
/* other events */
}, },
20: { 20: {
'Fire place': { 'Fire place': {
@ -60,171 +58,121 @@ const eventData = {
}, },
Thursday: { Thursday: {
10: { 10: {
'Lunch table': { 'Camp ground': {
event: 'Breakfast & Coffee', event: 'Mit Yoga kraftvoll in den Tag starten',
description: 'Join us for a fresh morning coffee & snacks.', description: 'Morgendlicher Start auf der Wiese vom Gasthof Wiese mit gemeinsamen Yoga-und AtemÜbungen. Bitte bringt eure Matte, bequeme Kleidung und ggf. eine Decke mit.',
}, },
/* other events */
}, },
12: { 12: {
'Camp ground': { 'Stage room': {
event: 'Fediverse Charta II', event: 'Fediverse Einstiegshelfy Austausch',
description: 'Workshop: Wir schreiben einen Entwurf einer „Fediverse-Charta“. Ansprechperson für die Session ist @reticuleena@digitalcourage.social.', description: 'Workshop: Wie helfen wir Leuten konkret dabei, ins Fediverse einzusteigen Erfahrungsaustausch. Leute sind überfordert von den Auswahlmöglichkeiten. Verschiedene Zielgruppen: Leute die umsteigen wollen; Leute die neu auf Social Media sind; Organisationen, die umsteigen wollen. Ansprechperson: Ben @b_rain@troet.cafe',
}, },
}, },
14: { 14: {
'Stage room': { 'Stage room': {
event: 'Moderationstreffen (FMT)', event: 'Austauschrunde: "Einen Fediverse-Workshop halten"',
description: 'Allgemeines Moderationstreffen mit den Initiatoren des etablierten turnusmäßigen Treffen der Moderator-/innen. Ansprechperson für die Session ist @w4ts0n@nerdculture.de.', description: 'Wir tauschen uns über unsere Erfahrungen beim Halten von Fediverse-Workshops aus. Kommt gern auch vorbei, wenn ihr noch nie einen Workshop zum Thema gehalten habt! Ansprechperson: Ückück',
}, },
}, },
16: { 16: {
'Lunch table': {
event: 'Pen and Paper mit Tealk',
description:
'Zur Auswahl stehen Aborea, Cyberpunk RED, Durance und Warhammer 40k Wrath & Glory. Die Delux edition ist noch unangetastet. Empfohlene Spielerzahl: 3 bis 6 Spielende. Außerdem wir das allseits beliebte Muchkin dabei sein. Ansprechperson für diese Session ist @Tealk@rollenspiel.social.',
},
'Camp ground': { 'Camp ground': {
event: 'Fck Uber', event: 'Löt-Workshop supported by WAK-Lab e.V.',
description: description: 'Workshop Löten funny stuff zB BlinkyParts. BlinkyPart Vorbestellung ggf über WAK-Lab e.V. Ansprechperson: greensoul',
'So können wir mit dezentralen Netzwerken den großen Konzernen Marktanteile wegnehmen bei Branchen, die stark lokal ausgerichtet sind. Ansprechperson ist @clemensg@digitalcourage.social.',
},
'Mobile': {
event: 'Schweißworkshops',
description: 'Einführung ins Schweißen von @willHelm@links.potsda.mn. Maximal 2 Personen.',
}, },
}, },
18: { 18: {
'Camp ground': { 'Stage room': {
event: 'Erotik und nun?', event: 'Solarlichter Löten / Löten für Anfänger',
description: 'Diskussionsrunde: Erotik-Content im Fediverse. Und nun? Ansprechpartner für diese Sessionn ist Digitalcourage.', description: 'Anfänger Workshop, kleiner Start-guide zum Löten lernen mit anschließender Umsetzung am Beispiel eines Solarlichtes. Bauteile/Platinen/Gehäuse werden gestellt. Dauer ca. 1-1,5h. Begrenzt auf 5 Personen. Ansprechperson: SandFuchsFroschy, @sandfrog@social.grautier.eu',
/* other events */
}, },
}, },
20: { 20: {
'Camp ground': { 'Fire place': {
event: '300.000 Jahre Homo Sapiens ...', event: 'Bonfire',
description: '... 50.000 Jahre Sprache, 10.000 Jahre Sesshaftigkeit, 2.500 Jahre Literatur, 500 Jahre Buchdruck, 25 Jahre Web - welche Anfängerfehler passieren uns gerade. Ansprechperson für diese Session ist @mro@digitalcourage.social', description: 'Sit-in and talks around the fire.',
}, },
}, },
/* other times */
}, },
Friday: { Friday: {
10: { 10: {
'Camp ground': { 'Camp ground': {
event: 'Dinge selber machen', event: 'Mit Yoga kraftvoll in den Tag starten',
description:'Dinge trotzdem selber machen (oder: Konsum oder Agency?). Vielleicht finden wir ja einen schönen Begriff statt >Agency<. Mit einem Ausflug zu Ivan Illich und den 📖 Tools for Convivality. Ansprechperson für diese Session ist @mro@digitalcourage.social', description: 'Morgendlicher Start auf der Wiese vom Gasthof Wiese mit gemeinsamen Yoga-und AtemÜbungen. Bitte bringt eure Matte, bequeme Kleidung und ggf. eine Decke mit.',
},
'Lunch table': {
event: 'Breakfast & Coffee',
description: 'Join us for a fresh morning coffee & snacks.',
}, },
}, },
12: { 12: {
'Camp ground': { 'Stage room': {
event: 'Was ist möglich im Fediverse', event: 'Privat-IN: Nextcloud auf Kleincomputern',
description: 'Über die Spezifikationen des ActivityPub-Protokolls. Einführung an drei konkreten Beispielen mit Spielkarten. Ansprechperson ist @sl007@digitalcourage.social.', description: 'Vortrag: Nextcloud speichert Adressen, Kontakte, Passwörter (und vieles mehr). So etwas können Normalbürger zu Hause auch: mit Kleincomputern (Raspberry, Orange, BananaPi). Kurzer Vortrag ca. 30min. Bei Interesse außerdem: Hands-on mit Hardware. Ansprechperson: @sven_ola@norden.social',
}, },
/* other events */
}, },
14: { 14: {
'Stage room': { 'Stage room': {
event: 'Gesund Kommerzialisieren', event: 'CryptoParty: Offene Austauschrunde',
description: 'Workshop: Gesund kommerzialisieren: nachhaltige Finanzierungskonzepte entwickeln, Billing automatisieren. Ansprechperson für die Session ist @reticuleena@digitalcourage.social.', description: 'Offene Austauschrunde rund um Kryptographie, Datenschutz und digitale Sicherheit. Mit Interessensabfrage und Verteilung in thematische Gruppen. Wir diskutieren aktuelle Entwicklungen, tauschen Erfahrungen aus und bilden bei Bedarf kleinere Arbeitsgruppen für vertiefende Gespräche. Alle Interessierten sind willkommen - von Anfängern bis zu Experten! Ansprechperson: @cryptgoat:tchncs.de',
}, },
'Lunch table': {
event: 'Pen and Paper: Mausritter',
description:
'Dieses Mal ein fertiges Abenteuer, dass es zu den GRT gab. ACHTUNG: Es können nicht so viele Mäuse mitspielen! Thema: Ritterliche Abenteuer mit kleinen Mäusen; Dauer 3-4 Stunden. Ansprechperson für diese Session ist @ueckueck@dresden.network.',
},
/* other events */
}, },
16: { 16: {
'Stage room': { 'Stage room': {
event: 'Talk: Werbetracking erkennen', event: 'RollenspielMonster vorstellung',
description: description: 'Übersicht über den Aufbau und technischen Hintergrund des Projekts. Bestandteile: Proxmox VE und Backup, pfSense, Proxymanager und co. Wurde sich bereits zweimal gewünscht, daher werd ich da jetzt mal durchgehen. Ansprechperson: @Tealk@rollenspiel.social',
'Matthias Eberl zeigt, wie man mit der Netzwerkanalyse des Browsers nach Trackingeinbettungen suchen kann, wie man sie identifiziert und mit welchen Rechtsgrundlagen man dann mit meinem Beschwerdegenerator "Tracktor" dagegen vorgehen kann. Außerdem wird eine einfache Methode gezeigt, um Apps auf verdächtige Verbindungen zu prüfen. Ansprechperson für diese Session ist @rufposten@social.tchncs.de.',
}, },
'Lunch table': {
event: 'Ownhome',
description:
'Ansprechperson für diese Session ist Clemens',
},
/* other events */
}, },
18: { 18: {
'Camp ground': { 'Stage room': {
event: 'Fedimins Serverabkommen', event: 'FediCamp - Vereinsgründung',
description: description: 'Wir wollen die Möglichkeiten diskutieren, wie wir das FediCamp nachhaltig und rechtssicher etablieren können. Dazu ist ein Verein hilfreich, der die Veranstaltungen trägt. Lasst uns gemeinsam darüber nachdenken und schauen, wie wir uns in Zukunft gemeinsam aufstellen.',
'Workshop: Im Anschluss an den "Fediverse Charta" Workshop reden wir über das Serverabkommen von Fedimins, betrachten den aktuellen Stand und reden darüber. Ansprechperson für die Session ist @tealk@rollenspiel.social.',
}, },
/* other events */
}, },
20: { 20: {
'Fire place': { 'Fire place': {
event: 'Bonfire', event: 'Music Acoustic Jam Session at the Camp Fire Site',
description: 'Sit-in and talks around the fire.', description: 'Bringt eure stromlosen Instrumente mit und lasst uns am Lagerfeuerplatz jammen. Gemeinsam jammen!',
}, },
'Lunch table': {
event: 'Tidying up',
description: 'Tidying up the kitchen and preparing for the next day.',
},
/* other events */
}, },
/* other times */
}, },
Saturday: { Saturday: {
10: {
'Camp ground': {
event: 'Pen and Paper runden',
description: 'Diverse Runden fürs Rollenspiel. Geplant sind Aborea, W40k Wrath & Glory, Everyone is John und Moirenico. Als Freizeit gedacht. Ansprechperson: @Tealk@rollenspiel.social',
},
},
12: { 12: {
'Stage room': { 'Stage room': {
event: 'Workshop Algorithmus', event: 'How-To-Homeserver: Einfache Selfhosting zuhause',
description: description: 'Workshop: Wie du mit alter Hardware zuhause deine eigenen Dienste hosten kannst. Wir zeigen, wie du aus einem alten Laptop oder PC einen funktionierenden Homeserver machst. Von der Hardware-Auswahl über die Installation bis zur Konfiguration der ersten Dienste. Praktische Tipps für Anfänger und Fortgeschrittene. Ansprechperson: @cryptgoat:tchncs.de',
'Workshop: Der "wichtiges"-Algorithmus fehlt manchen. Wie ließe sich das gesellschaftsverträglich umsetzen? Ansprechperson für die Session ist @reticuleena@digitalcourage.social.',
}, },
/* other events */
}, },
14:{ 14: {
'Mobile': { 'Camp ground': {
event: 'Schweißworkshops', event: 'Botanischer Exkurs Wendland',
description: 'Einführung ins Schweißen von @willHelm@links.potsda.mn. Maximal 2 Personen', description: 'Wir entdecken gemeinsam die Pflanzenwelt rund um den Gasthof Wiese - zu Fuß, mit dem Rad. Ansprechperson: greensoul',
}, },
'Stage room': {
event: 'Flohmarkt',
description:
'Föderierte kleinanzeigen. Ansprechperson: @grindhold@chaos.social',
},
}, },
16: { 16: {
'Camp ground': { 'Stage room': {
event: 'Lötworkshop', event: 'Leben am Ende der Welt - ferne Inseln und das Leben dort',
description: description: 'Wir schauen uns den Alltag auf fernen Inseln an, lernen wie das Leben dort funktioniert, ohne ständigen Zugriff auf Infrastruktur die wir kennen. Ansprechperson: Tobi (tobi@dz.social)',
'Lernt löten. @hilde@dz.social wird durch den Workshop führen und Euch zeigen, wie das alles funktioniert. Lötkolben und weiteres benötigtes Werkzeug wird zur Verfügung gestellt.', },
'Camp ground': {
event: 'Vorstellung einer Wetterstation und LiveCam auf lokalen Servern (Raspberry Pi), betrieben mit Solarstrom',
description: 'Workshop/Projekt: Wir bauen gemeinsam eine Wetterstation und eine LiveCam, die auf lokalen Servern (Raspberry Pi) laufen und mit Solarstrom betrieben werden. Fragen, Austausch und gemeinsames Basteln. Die Technik wird über die Tage aufgebaut und vorgestellt, wenn es fertig ist. Ansprechperson: Marius Quabeck, Nerdzoom, @marius@social.nerdzoom.media',
}, },
/* other events */
}, },
18: { 18: {
'Camp ground': { 'Stage room': {
event: 'Zu große Instanzen', event: 'Löt-Workshop supported by WAK-Lab e.V.',
description: 'Diskusstionsrunde zum Thema große und zu große Instanzen.', description: 'Weiterer Termin: Workshop Löten funny stuff zB BlinkyParts. BlinkyPart Vorbestellung ggf über WAK-Lab e.V. Ansprechperson: greensoul',
}, },
'Lunch table': {
event: 'Preparing BBQ',
description: 'Preparing BBQ & dinner.',
},
/* other events */
}, },
20: { 20: {
'Fire place': { 'Camp ground': {
event: 'Bonfire', event: 'Pen And Paper Brindlewood Bay',
description: 'Sit-in and talks around the fire.', description: 'Pen and Paper Runde mit Omis, die Kriminalfälle lösen und einem Hauch übernatürlicher Monster. Rollenspielrunde mit PbtA-System. Ansprechperson: Ückück',
}, },
'Lunch table': {
event: 'Tidying up',
description: 'Tidying up the kitchen and preparing for the next day.',
},
/* other events */
}, },
/* other times */
}, },
Sunday: { Sunday: {
12: { 12: {
@ -232,16 +180,8 @@ const eventData = {
event: 'Tearing down', event: 'Tearing down',
description: 'Clearing up the camp grounds.', description: 'Clearing up the camp grounds.',
}, },
/* other events */
}, },
14: {
'Lunch table': {
event: 'Coffee',
description: "Let's have a last coffee before traveling home again.",
},
/* other events */
},
/* other times */
}, },
/* other days */
}; };
module.exports = eventData;

View file

@ -3,21 +3,21 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Event Timetable</title> <title>FediCamp Timetable</title>
<link rel="stylesheet" href="styles.css"> <link rel="stylesheet" href="styles.css">
</head> </head>
<body> <body>
<div id="landscape-message"> <div id="landscape-message">
<br><br> <br><br>
<h1>FediCamp 2024 TimeTable</h1> <h1>FediCamp 2025 TimeTable</h1>
<img src="https://fedi.camp/images/fedicamp-logo2024.png" alt="FediCamp Logo" id="logo" /> <img src="https://fedi.camp/images/fc25_logo.png" alt="FediCamp Logo" id="logo" />
<h2>Please Rotate Your Device</h2> <h2>Please Rotate Your Device</h2>
<p>For the best viewing experience, please switch to landscape mode.</p> <p>For the best viewing experience, please switch to landscape mode.</p>
</div> </div>
<div id="timetable"> <div id="timetable">
<h1 id="headline">FediCamp 2024</h1> <h1 id="headline">FediCamp 2025</h1>
<h2 id="subheadline">Time Table</h2> <h2 id="subheadline">Time Table</h2>
<div id="slider-container"> <div id="slider-container">