This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
366 lines (357 loc) · 11.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selbstbestimmungsgesetz.wtf</title>
<style>
h1 {
word-wrap: break-word;
}
main {
padding: 1rem;
max-width: 600px;
margin: 0 auto;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue",
sans-serif;
}
main > * + * {
margin-top: 1rem;
}
button {
background-color: white;
padding: 0.5rem 1rem;
border: 2px solid rebeccapurple;
font-weight: 600;
cursor: pointer;
}
button:hover {
background-color: rebeccapurple;
color: white;
}
.button-group {
display: flex;
flex-flow: column;
gap: 1rem;
}
blockquote {
font-style: italic;
}
cite {
display: block;
margin-top: 1rem;
font-style: normal;
font-size: 0.85rem;
color: #444;
}
section {
display: none;
}
section.current {
display: block;
}
</style>
</head>
<body>
<noscript>
Ohne JavaScript funktioniert das hier leider nicht. Keine Sorge. Ist nicht
viel. Hab es brav mit meinen eigenen Pfoten verfasst.
</noscript>
<main aria-live="assertive">
<section class="current">
<h1>Der Selbstbestimmungsgesetz-Simulator</h1>
<p>
Basierend auf dem aktuellen Entwurf, hier schon jetzt
Selbstbestimmungsgesetz zum Durchspielen. Also: Möchtest du deinen
Namen und/oder Geschlechtseintrag ändern?
</p>
<div class="button-group">
<button type="button" data-go-to-step="are-you-sure">
Los geht's!
</button>
</div>
</section>
<section data-step="are-you-sure">
<h2>
Bist du dir sicher, dass der gewählte Geschlechtseintrag
(beziehungsweise die Streichung des Geschlechtseintrags) deiner
Geschlechtsidentität am besten entspricht?
</h2>
<div class="button-group">
<button type="button" data-go-to-step="are-you-really-sure">
Ja.
</button>
</div>
</section>
<section data-step="are-you-really-sure">
<h2>
Bist du dir der Tragweite der durch die Erklärung bewirkten Folgen
bewusst?
</h2>
<div class="button-group">
<button type="button" data-go-to-step="standesamt">
Ja. Sonst wär ich ja wohl nicht hier?
</button>
</div>
</section>
<section data-probability="0.1" data-step="standesamt">
<h2>
Der Standesbeamte glaubt dir nicht. Dein Antrag wurde abgelehnt.
</h2>
<div class="info">
<h3>Das geht?</h3>
<p>In der Begründung zum SBGG steht folgendes:</p>
<blockquote>
<b
>Der Geschlechtseintrag im Personenstandsregister kann nicht durch
bloße Erklärung geändert werden.
</b>
Für die Eintragung des Geschlechts im Personenstandsregister bedarf
es zum einen einer Eigenversicherung, vergleiche Absatz 2, zum
anderen einer tatsächlichen Handlung des Standesamts,
<b>so dass die Eintragung nicht rein deklaratorisch ist.</b>
<cite>Begründung zum SBGG, Hervorhebungen von mir</cite>
</blockquote>
</div>
<div class="button-group">
<button type="button" data-go-to-step="standesamt">
Erneut versuchen
</button>
<button type="button" data-go-to-step="call-to-action">
Ich will mich beschweren.
</button>
</div>
</section>
<section data-probability="0.9" data-step="standesamt">
<h2>Herzlichen Glückwunsch. Dein Antrag wurde akzeptiert.</h2>
<p>
Aber da wir dir nicht zutrauen, selbstbestimmt Entscheidungen zu
treffen, musst du jetzt noch drei Monate warten.
</p>
<blockquote>
<p>§ 4 Wirksamkeit; Rücknahme der Erklärung.</p>
<p>
Die Änderung des Geschlechtseintrags oder der Vornamen wird erst
drei Monate nach der Erklärung gemäß § 2 im Personenstandsregister
eingetragen und wirksam. Innerhalb dieser Frist kann die Person ihre
Erklärung schriftlich gegenüber dem Standesamt, bei dem die
Erklärung nach § 2 abgegeben wurde, zurücknehmen.
</p>
</blockquote>
<div class="button-group">
<button type="button" data-go-to-step="data-changed">
Vorspulen zum
<time id="date-in-three-months">TIME_IN_THREE_MONTHS</time>
</button>
</div>
</section>
<section data-step="data-changed">
<h2>
Dein Bescheid wurde gewilligt. Du hast deine Daten nun geändert.
</h2>
<div class="button-group">
<button type="button" data-go-to-step="deadnaming">
Na endlich!
</button>
</div>
</section>
<section data-step="deadnaming">
<h2>Oh nein. Jemand hat dich gedeadnamed.</h2>
<p>Zu welcher Personengruppe gehört die Person?</p>
<div class="button-group">
<button type="button" data-go-to-step="deadnaming-family">
Eltern oder Großeltern
</button>
<button type="button" data-go-to-step="deadnaming-family">
dein(e) Kind(er)
</button>
<button type="button" data-go-to-step="deadnaming-others">
ein Arbeitskollege
</button>
<button type="button" data-go-to-step="deadnaming-others">
irgend so eine Person auf der Straße
</button>
</div>
</section>
<section data-step="deadnaming-family">
<h2>
Die Person ist vom Offenbarungsverbot ausgenommen. Du bist machtlos.
</h2>
<p>
Ja, wir haben im aktuellen Entwurf nur ein
<i>Offenbarungsverbot light</i>.
</p>
<blockquote>
(2) Der frühere und der derzeitige Ehegatte, die Verwandten in gerader
Linie und der andere Elternteil eines Kindes der in Absatz 1 genannten
Person sind nur dann verpflichtet, den geänderten Geschlechtseintrag
und die geänderten Vornamen anzugeben, wenn dies für die Führung
öffentlicher Bücher und Register oder im Rechtsverkehr erforderlich
ist. Satz 1 gilt nicht für
<ol>
<li>
Ehegatten aus nach der Änderung des Geschlechtseintrags
geschlossenen Ehen,
</li>
<li>
nach der Änderung des Geschlechtseintrags geborene oder
angenommene Kinder,
</li>
<li>
den anderen Elternteil von nach der Änderung des
Geschlechtseintrags geborenen oder angenommenen Kindern.
</li>
</ol>
<cite>§ 13 Offenbarungsverbot</cite>
</blockquote>
<div class="button-group">
<button type="button" data-go-to-step="call-to-action">
Ich will mich beschweren.
</button>
</div>
</section>
<section data-step="deadnaming-others">
<h2>Hat die Person deinen Deadname nur dir gegenüber geäußert?</h2>
<div class="button-group">
<button type="button" data-go-to-step="deadnaming-just-to-you">
Ja.
</button>
<button type="button" data-go-to-step="deadnaming-to-others">
Nein.
</button>
</div>
</section>
<section data-step="deadnaming-just-to-you">
<h2>Der Tatbestand der Offenbarung ist nicht erfüllt.</h2>
<blockquote>
Mangels Mitteilung an einen Dritten ist auch bei Äußerungen gegenüber
der Person selbst, die ihren Geschlechtseintrag oder ihre Vornamen
geändert hat, der Tatbestand des § 14 SBGG nicht erfüllt.
<cite>Begründung zum Offenbarungsverbot</cite>
</blockquote>
<div class="button-group">
<button type="button" data-go-to-step="call-to-action">
Ich will mich beschweren.
</button>
</div>
</section>
<section data-step="deadnaming-to-others">
<h2>Hat dich die Person aus versehentlich gedeadnamed?</h2>
<div class="button-group">
<button type="button" data-go-to-step="deadnaming-by-accident">
Ja, aber warum spielt das eine Rolle?
</button>
<button type="button" data-go-to-step="deadnaming-with-intent">
Nein.
</button>
</div>
</section>
<section data-step="deadnaming-by-accident">
<h2>
Ohne Absicht keine Ordnungswidrigkeit. Das Offenbarungsverbot greift
nicht.
</h2>
<blockquote>
Darüber hinaus wird eine Schädigungsabsicht der handelnden Person,
also ein auf die eingetretene Schädigung der betroffenen Person
abzielendes Handeln, vorausgesetzt; sie liegt nur vor, wenn der Täter
der betroffenen Person einen über die bloße Offenbarung
hinausgehenden, selbständigen Nachteil zufügen will.
<cite>Begründung zum Offenbarungsverbot</cite>
</blockquote>
<div class="button-group">
<button type="button" data-go-to-step="call-to-action">
Ich will mich beschweren.
</button>
</div>
</section>
<section data-step="deadnaming-with-intent">
<h2>Kannst du die Absicht auch sicher nachweisen?</h2>
<p>
Falls nicht, viel Erfolg. Die Beweislast liegt bei dir. Falls du es
schaffst, die Absicht zweifelsfrei nachzuweisen, kannst du dann das
Offenbarungsverbot durchsetzen.
</p>
<blockquote>
Darüber hinaus wird eine Schädigungsabsicht der handelnden Person,
also ein auf die eingetretene Schädigung der betroffenen Person
abzielendes Handeln, vorausgesetzt; sie liegt nur vor, wenn der Täter
der betroffenen Person einen über die bloße Offenbarung
hinausgehenden, selbständigen Nachteil zufügen will.
<cite>Begründung zum Offenbarungsverbot</cite>
</blockquote>
<div class="button-group">
<button type="button" data-go-to-step="call-to-action">
Ich will mich beschweren.
</button>
</div>
</section>
<section data-step="call-to-action">
<h2>Was soll der Scheiß?</h2>
<p>
Es ist Zeit, sich zu beschweren. Wir haben
<a href="https://2023.allegutendinge.jetzt/#write"
>gute Dinge verdient, und zwar jetzt.</a
>
</p>
</section>
</main>
<script>
const now = new Date();
const [year, month, day] = [
now.getFullYear(),
now.getMonth(),
now.getDate(),
];
document.getElementById("date-in-three-months").innerText = new Date(
Date.UTC(year, month + 3, day, 0, 0, 0)
).toLocaleDateString("de", {
dateStyle: "long",
});
const pushToHistory = () => {
const current = document.querySelector("section.current");
const step = current.getAttribute("data-step");
const title = current.querySelector("h2").innerText;
history.pushState({ step: step }, title, null);
};
const displayForm = (step) => {
// Hide all current elements
document
.querySelectorAll("section")
.forEach((x) => x.classList.remove("current"));
const elementsForStep = Array.from(
document.querySelectorAll(`section[data-step='${step}']`)
);
// If we only have one element, display it.
if (elementsForStep.length == 1) {
elementsForStep[0].classList.add("current");
return;
}
const cumWeights = [];
for (let i = 0; i < elementsForStep.length; i += 1) {
const w = parseFloat(
elementsForStep[i].getAttribute("data-probability")
);
cumWeights[i] = w + (cumWeights[i - 1] || 0);
}
const rnd = cumWeights[cumWeights.length - 1] * Math.random();
for (let i = 0; i < elementsForStep.length; i += 1) {
if (cumWeights[i] >= rnd) {
elementsForStep[i].classList.add("current");
return;
}
}
};
document.querySelectorAll("button").forEach((btn) => {
btn.addEventListener("click", (e) => {
const next = btn.getAttribute("data-go-to-step");
displayForm(next);
pushToHistory();
});
});
window.addEventListener("popstate", (e) => displayForm(e.state.step));
</script>
</body>
</html>