diff --git a/app/components/malio/shared/RequiredMark.test.ts b/app/components/malio/shared/RequiredMark.test.ts
new file mode 100644
index 0000000..69ad5c1
--- /dev/null
+++ b/app/components/malio/shared/RequiredMark.test.ts
@@ -0,0 +1,20 @@
+import {describe, expect, it} from 'vitest'
+import {mount} from '@vue/test-utils'
+import RequiredMark from './RequiredMark.vue'
+
+describe('MalioRequiredMark', () => {
+ it('rend un astérisque', () => {
+ const wrapper = mount(RequiredMark)
+ expect(wrapper.text()).toBe('*')
+ })
+
+ it('est masqué pour les technologies d\'assistance', () => {
+ const wrapper = mount(RequiredMark)
+ expect(wrapper.get('[data-test="required-mark"]').attributes('aria-hidden')).toBe('true')
+ })
+
+ it('utilise le token de couleur danger', () => {
+ const wrapper = mount(RequiredMark)
+ expect(wrapper.get('[data-test="required-mark"]').classes()).toContain('text-m-danger')
+ })
+})
diff --git a/app/components/malio/shared/RequiredMark.vue b/app/components/malio/shared/RequiredMark.vue
new file mode 100644
index 0000000..c61d5e9
--- /dev/null
+++ b/app/components/malio/shared/RequiredMark.vue
@@ -0,0 +1,11 @@
+
+ *
+
+
+