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
1 change: 1 addition & 0 deletions src/components/Layout/Foot.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<li><router-link to="/privacy-policy">Privacy Policy</router-link></li>
<li><router-link to="/terms-of-use">Terms of Use</router-link></li>
<li><router-link to="/hosting-policy/pilot">Hosting Policy</router-link></li>
<li><router-link to="/dsa-info">Digital Services Act Information</router-link></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://www.wikimedia.de/impressum/">Imprint</a></li>
<li><router-link to="/complaint">Report illegal content</router-link></li>
</ul>
Expand Down
157 changes: 157 additions & 0 deletions src/components/Pages/DsaInfo/DsaEnglish.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
<template>
<v-row justify="center">
<v-col cols="11" md="4" order-md="last">
<div class="px-6 py-4">
<router-link :to="{ hash: '#dsa-de' }" class="text-decoration-none">Zur deutschen Fassung</router-link>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, TIL about router-link!

</div>

<v-expansion-panels v-model="contentPanel">
<v-expansion-panel>
<v-expansion-panel-header>
Contents
</v-expansion-panel-header>

<v-expansion-panel-content>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Figma design has the contents expanded by default on desktop and collapsed by default on mobile. Did you try to implement this? Was this difficult to achieve?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooh I didn't even catch that. I found a way to do it and added it

<v-list>
<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-en-one' }" class="text-decoration-none">
<v-list-item-title>1. General</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-en-two' }" class="text-decoration-none">
<v-list-item-title>2. Contact point for authorities and users</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-en-three' }" class="text-decoration-none">
<v-list-item-title>3. Average monthly number of active users in the EU</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-en-four' }" class="text-decoration-none">
<v-list-item-title>4. Out-of-court dispute resolution body</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-en-five' }" class="text-decoration-none">
<v-list-item-title>5. Transparency report</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>
</v-list>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
</v-col>

<v-col cols="11" md="8">
<p class="text-h6 font-weight-regular">English</p>
<p>The Digital Services Act (DSA) is an EU regulation that entered into force in 2022, establishing a
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On mobile (375px wide) the lines in this paragraph are wrapped differently depending on if the Contents is expanded or collapsed which is a little jarring. Probably not worth spending too much time on, but if it's an easy fix let's do it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I definitely saw what you described, and had no idea how to fix it, but apparently the v-divider fix fixed this as well :D

comprehensive framework for digital services accountability, content moderation, and platform transparency
across the European Union.
It significantly updates the Electronic Commerce Directive 2000 in EU law by introducing graduated obligations
based on service size and risk levels, and was proposed alongside the Digital Markets Act (DMA).
You can read more about DSA <a href="https://en.wikipedia.org/wiki/Digital_Services_Act" class="external"
target="_blank">here<v-icon small color="primary" class="pl-1 pb-2"> mdi-open-in-new</v-icon></a>.
</p>

<v-divider class="my-6" />

<p class="font-weight-light">Last updated: January 2026</p>
<h3 id="dsa-en-one" class="font-weight-regular my-2">1. General</h3>
<p>On this page, you will find all the information required under the
Digital Services Act (i.e., Articles 11, 12, 21, and 24 of <a
href="https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=celex:32022R2065" target="_blank">Regulation
(EU) 2022/2065)<v-icon small color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a>.</p>

<h3 id="dsa-en-two" class="font-weight-regular my-2">2. Contact point for authorities and users</h3>
<p>To contact us in accordance with Article 11 DSA for authorities of EU
member states, the European Commission, and the European Board, please
send a message to our central contact point here <a
href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a>. We
will send you a confirmation. Contact will be made by email in English
or German.</p>
<p>To contact us in accordance with Article 12 DSA, users can send their
DSA-related inquiries to our central contact point here <a
href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a> or
via telephone (+49 (0)30-577 11 62-0).</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This phone number is merely a plain text. Consider using a clickable phone link (e.g., an <a href="tel:...">)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good thinking, that would make it easier for a user to quickly contact via phone. Great if you want to offer services, but I think if someone needs some legal contact they will reach out anyway + this would make it easier to crawl this phone number by scripts, so I don't think we necessarily want a link like that here

<p>Information on the processing of personal data is provided in our <router-link to="/privacy-policy">Privacy
Policy</router-link>. By
contacting us, you confirm that you have taken note of this
information.</p>

<h3 id="dsa-en-three" class="font-weight-regular my-2">3. Average monthly number of active users in the
EU</h3>
<p>The estimated average number of monthly active users in the EU is
20,000, based on the average of the previous six months up to
<strong>January 2026</strong>.
</p>
<p>Until the EU Commission specifies the exact calculation method in
delegated acts in accordance with Art. 24 (2) and Art. 33 (3) GDPR, we
make the estimation by comparing Wikibase Cloud with Wikidata, a similar
Wikimedia-hosted structured data platform.</p>
<p>We use the ratio of monthly active editors on Wikibase Cloud to those
on Wikidata to proportionally scale <a
href="https://foundation.wikimedia.org/wiki/Legal:EU_DSA_Userbase_Statistics#Average_monthly_active_recipients_of_the_service,_in_the_EU_region,_over_the_prior_6_months"
target="_blank">Wikidata’s
published estimate<v-icon small color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a> of average
monthly recipients
(1,337,000 in Aug
2025-Jan 2026). With 337 monthly editors on Wikibase Cloud and 25,000 on
Wikidata in January 2026, this results in an estimated average of
approximately 18,000 monthly active users in the EU for Wikibase
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line 101 said 20,000. We can flag this up to Anton and confirm.

Cloud.</p>

<h3 id="dsa-en-four" class="font-weight-regular my-2">4. Out-of-court dispute resolution body</h3>
<p>To resolve disputes relating to decisions we have made in the
moderation of content, users in the EU can lodge a complaint six months
after being notified of our decision <a href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a>
.</p>
<p>In addition, EU users may also choose a certified out-of-court
dispute resolution body to resolve disputes relating to decisions we
have made in the context of content moderation in accordance with
Article 21 of the DSA. The EU Commission has a list of out-of-court
dispute resolution bodies for this purpose, which you can find <a
href="https://digital-strategy.ec.europa.eu/en/policies/dsa-out-court-dispute-settlement"
target="_blank">here<v-icon small color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a>.</p>

<h3 id="dsa-en-five" class="font-weight-regular my-2">5. Transparency report</h3>
<p>In accordance with the provisions of Article 15 of the DSA, Wikimedia
Deutschland e.V. publishes an annual transparency report on this
page.</p>
</v-col>
</v-row>
</template>

<script>
export default {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we remove it completely? It's empty and provides no value anyway

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fair question, in my mind I rather would leave it here as a reminder of how these templates work/are structured, or what could be added here

name: 'DsaEnglish',
computed: {},

data: () => ({
contentPanel: null, // closed by default, https://v2.vuetifyjs.com/en/components/expansion-panels/#model
}),

mounted() {

Check failure on line 149 in src/components/Pages/DsaInfo/DsaEnglish.vue

View workflow job for this annotation

GitHub Actions / build (22)

Missing space before function parentheses
if (this.$vuetify.breakpoint.mdAndUp) {
this.contentPanel = 0 // open the first (and only) panel
}
}

Check failure on line 153 in src/components/Pages/DsaInfo/DsaEnglish.vue

View workflow job for this annotation

GitHub Actions / build (22)

Missing trailing comma
}
</script>

<style scoped></style>
163 changes: 163 additions & 0 deletions src/components/Pages/DsaInfo/DsaGerman.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
<template>
<v-row justify="center">
<v-col cols="11" md="4" order-md="last">
<div class="px-6 py-4">
<router-link :to="{ hash: '#dsa-en' }" class="text-decoration-none">Go to the English version</router-link>
</div>

<v-expansion-panels v-model="contentPanel">
<v-expansion-panel>
<v-expansion-panel-header>
Inhalte
</v-expansion-panel-header>

<v-expansion-panel-content>
<v-list>
<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-de-one' }" class="text-decoration-none">
<v-list-item-title>1. Allgemeines</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-de-two' }" class="text-decoration-none">
<v-list-item-title>2. Kontaktstelle für Behörden und
Nutzer</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-de-three' }" class="text-decoration-none">
<v-list-item-title>3. Durchschnittliche monatliche
Zahl der aktiven Nutzer in der EU</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-de-four' }" class="text-decoration-none">
<v-list-item-title>4. Außergerichtliche
Streitbeilegungsstelle</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>

<v-list-item>
<v-list-item-content>
<router-link :to="{ hash: '#dsa-de-five' }" class="text-decoration-none">
<v-list-item-title>5. Transparenzbericht</v-list-item-title>
</router-link>
</v-list-item-content>
</v-list-item>
</v-list>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
</v-col>

<v-col cols="11" md="8">
<p class="text-h6 font-weight-regular">Deutsch</p>

<p>Der Digital Services Act (DSA) ist eine EU-Verordnung, die 2022 in Kraft getreten ist und einen umfassenden
Rahmen für die Rechenschaftspflicht digitaler Dienste,
die Moderation von Inhalten und die Transparenz von Plattformen in der gesamten Europäischen Union schafft. Er
aktualisiert die Richtlinie über den elektronischen Geschäftsverkehr
aus dem Jahr 2000 im EU-Recht erheblich, indem er abgestufte Verpflichtungen je nach Größe des Dienstes und
Risikostufe einführt, und wurde zusammen mit dem Digital Markets Act (DMA) vorgeschlagen.
Weitere Informationen zum DSA finden Sie <a
href="https://de.wikipedia.org/wiki/Gesetz_%C3%BCber_digitale_Dienste" target="_blank">hier<v-icon small
color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a>.</p>

<v-divider class="my-6" />

<p class="font-weight-light">Stand: Januar 2026</p>

<h3 id="dsa-de-one" class="font-weight-regular my-2">1. Allgemeines</h3>
<p>Auf dieser Seite findest du alle erforderlichen Informationen nach
dem Digital Services Act (das heißt nach Artikel 11, Artikel 12, Artikel
21 und Artikel 24 der <a href="https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=CELEX:32022R2065"
target="_blank">Verordnung
(EU) 2022/2065<v-icon small color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a>).</p>

<h3 id="dsa-de-two" class="font-weight-regular my-2">2. Kontaktstelle für Behörden und Nutzer</h3>
<p>Zur Kontaktaufnahme nach Art. 11 DSA für Behörden von
EU-Mitgliedstaaten, der Europäischen Kommission und das Europäische
Gremium kann eine Mitteilung an unsere zentrale Kontaktstelle hier <a
href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a>
gerichtet werden. Wir übermitteln eine Eingangsbestätigung. Der Kontakt
findet per E-Mail in englischer oder deutscher Sprache statt.</p>
<p>Zur Kontaktaufnahme nach Artikel 12 DSA können Nutzer ihre Anfragen
im Zusammenhang mit dem DSA an unsere zentrale Kontaktstelle hier <a
href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a> oder
per Telefon unter der (+49 (0)30-577 11 62-0) richten.</p>
<p>Informationen zur Verarbeitung personenbezogener Daten sind in
unserer <a href="https://www.wikibase.cloud/privacy-policy">Datenschutzerklärung</a>
aufgeführt. Mit der Kontaktaufnahme wird bestätigt, die Informationen
zur Kenntnis genommen zu haben.</p>

<h3 id="dsa-de-three" class="font-weight-regular my-2">3. Durchschnittliche monatliche Zahl der aktiven Nutzer in
der EU</h3>
<p>Die geschätzte durchschnittliche Anzahl monatlich aktiver Nutzer in
der EU beträgt 20,000 Millionen, basierend auf dem Durchschnitt der
vergangenen sechs Monate bis zum <strong>Januar 2026</strong>.</p>
<p>Bis die EU-Kommission gemäß Art. 24 Abs. 2 und Art. 33 Abs. 3 DSGVO
die genaue Berechnungsmethode in den delegierten Rechtsakten festlegt,
nehmen wir die Schätzung vor, indem wir Wikibase Cloud mit Wikidata
vergleichen, einer ähnlichen, von Wikimedia gehosteten Plattform für
strukturierte Daten.</p>
<p>Wir verwenden das Verhältnis der monatlich aktiven Editierenden auf
Wikibase Cloud zu denen auf Wikidata, um die von Wikidata
veröffentlichte Schätzung der durchschnittlichen monatlichen Anzahl von
Empfängern (1,337,000 im August 2025-January 2026) proportional zu
skalieren. Bei 337 monatlichen Editierenden auf Wikibase Cloud und
25.000 auf Wikidata im Januar 2026 ergibt sich daraus eine geschätzte
durchschnittliche Zahl von ungefähr 18.000 monatlich aktiven Nutzern in
der EU für Wikibase Cloud.</p>

<h3 id="dsa-de-four" class="font-weight-regular my-2">4. Außergerichtliche Streitbeilegungsstelle</h3>
<p>Zur Beilegung von Streitigkeiten im Zusammenhang von uns getroffenen
Entscheidungen bei der Moderation von Inhalten können Nutzer in der EU
sechs Monate nachdem sie von unserer Entscheidung in Kenntnis gesetzt
wurden, Beschwerde einreichen <a href="mailto:dsa-meldung@wikimedia.de">dsa-meldung@wikimedia.de</a>.</p>
<p>Im Übrigen können EU-Nutzer zur Beilegung von Streitigkeiten im
Zusammenhang von uns getroffenen Entscheidungen bei der Moderation von
Inhalten gemäß Artikel 21 des DSA auch eine zertifizierte
außergerichtliche Streitbeilegungsstelle wählen. Die EU-Kommission
verfügt zu diesem Zweck über eine Liste außergerichtlicher
Streitbeilegungsstellen, die du <a
href="https://digital-strategy.ec.europa.eu/de/policies/dsa-out-court-dispute-settlement"
target="_blank">hier<v-icon small color="primary" class="pl-1 pb-2">mdi-open-in-new</v-icon></a>
findest.</p>

<h3 id="dsa-de-five" class="font-weight-regular my-2">5. Transparenzbericht</h3>
<p>Gemäß den Vorgaben von Artikel 15 des DSA veröffentlicht Wikimedia
Deutschland e.V. einen jährlichen Transparenzbericht auf dieser
Seite.</p>
</v-col>
</v-row>
</template>

<script>
export default {
name: 'DsaGerman',
computed: {},

data: () => ({
contentPanel: null, // closed by default, https://v2.vuetifyjs.com/en/components/expansion-panels/#model
}),

mounted() {

Check failure on line 155 in src/components/Pages/DsaInfo/DsaGerman.vue

View workflow job for this annotation

GitHub Actions / build (22)

Missing space before function parentheses
if (this.$vuetify.breakpoint.mdAndUp) {
this.contentPanel = 0 // open the first (and only) panel
}
}

Check failure on line 159 in src/components/Pages/DsaInfo/DsaGerman.vue

View workflow job for this annotation

GitHub Actions / build (22)

Missing trailing comma
}
</script>

<style scoped></style>
38 changes: 38 additions & 0 deletions src/components/Pages/DsaInfo/DsaInfo.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<template>
<v-main>
<v-container class="fill-height" fluid>
<v-row justify="center">
<v-col cols="12">
<h1 class="font-weight-regular">Digital Services Act (DSA) Information Page</h1>
</v-col>
</v-row>

<DsaEnglish id="dsa-en" />

Check failure on line 11 in src/components/Pages/DsaInfo/DsaInfo.vue

View workflow job for this annotation

GitHub Actions / build (22)

Trailing spaces not allowed

Check failure on line 12 in src/components/Pages/DsaInfo/DsaInfo.vue

View workflow job for this annotation

GitHub Actions / build (22)

More than 1 blank line not allowed
<v-row justify="center">
<v-col cols="12">
<v-divider class="mt-16 mb-8" />
</v-col>
</v-row>

<DsaGerman id="dsa-de" />
</v-container>
</v-main>
</template>

<script>
import DsaEnglish from './DsaEnglish.vue'
import DsaGerman from './DsaGerman.vue'

export default {
name: 'DsaInfo',
components: {
DsaEnglish,
DsaGerman,
},
computed: {},
}
</script>

<style scoped></style>
Loading
Loading