diff --git a/lang/ar/posts.php b/lang/ar/posts.php
index bf614f06..49321ed8 100644
--- a/lang/ar/posts.php
+++ b/lang/ar/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'إضافة :count',
],
+ 'alt_text' => [
+ 'label' => 'نص بديل',
+ 'edit' => 'تحرير النص البديل',
+ 'placeholder' => 'صف هذه الصورة للأشخاص الذين يستخدمون برامج قراءة الشاشة',
+ 'hint' => 'يُنشر على المنصات التي تدعم أوصاف الصور.',
+ 'badge' => 'ALT',
+ 'save' => 'حفظ',
+ ],
+
'emoji_picker' => [
'search' => 'البحث عن رمز تعبيري',
'empty' => 'لم يتم العثور على رموز تعبيرية',
diff --git a/lang/de/posts.php b/lang/de/posts.php
index f07a1de4..6fc1d048 100644
--- a/lang/de/posts.php
+++ b/lang/de/posts.php
@@ -380,6 +380,15 @@
'add_count' => ':count hinzufügen',
],
+ 'alt_text' => [
+ 'label' => 'Alternativtext',
+ 'edit' => 'Alternativtext bearbeiten',
+ 'placeholder' => 'Beschreibe dieses Bild für Menschen, die Screenreader verwenden',
+ 'hint' => 'Wird auf Plattformen veröffentlicht, die Bildbeschreibungen unterstützen.',
+ 'badge' => 'ALT',
+ 'save' => 'Speichern',
+ ],
+
'emoji_picker' => [
'search' => 'Emoji suchen',
'empty' => 'Keine Emojis gefunden',
diff --git a/lang/el/posts.php b/lang/el/posts.php
index b32f2dd8..0b6c8133 100644
--- a/lang/el/posts.php
+++ b/lang/el/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Προσθήκη :count',
],
+ 'alt_text' => [
+ 'label' => 'Εναλλακτικό κείμενο',
+ 'edit' => 'Επεξεργασία εναλλακτικού κειμένου',
+ 'placeholder' => 'Περιγράψτε αυτήν την εικόνα για άτομα που χρησιμοποιούν προγράμματα ανάγνωσης οθόνης',
+ 'hint' => 'Δημοσιεύεται σε πλατφόρμες που υποστηρίζουν περιγραφές εικόνων.',
+ 'badge' => 'ALT',
+ 'save' => 'Αποθήκευση',
+ ],
+
'emoji_picker' => [
'search' => 'Αναζήτηση emoji',
'empty' => 'Δεν βρέθηκαν emoji',
diff --git a/lang/en/posts.php b/lang/en/posts.php
index e4f52fed..87a0af78 100644
--- a/lang/en/posts.php
+++ b/lang/en/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Add :count',
],
+ 'alt_text' => [
+ 'label' => 'Alt text',
+ 'edit' => 'Edit alt text',
+ 'placeholder' => 'Describe this image for people using screen readers',
+ 'hint' => 'Published to platforms that support image descriptions.',
+ 'badge' => 'ALT',
+ 'save' => 'Save',
+ ],
+
'emoji_picker' => [
'search' => 'Search emoji',
'empty' => 'No emojis found',
diff --git a/lang/es/posts.php b/lang/es/posts.php
index 61509fd8..e73b1afe 100644
--- a/lang/es/posts.php
+++ b/lang/es/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Agregar :count',
],
+ 'alt_text' => [
+ 'label' => 'Texto alternativo',
+ 'edit' => 'Editar texto alternativo',
+ 'placeholder' => 'Describe esta imagen para las personas que usan lectores de pantalla',
+ 'hint' => 'Se publica en las plataformas que admiten descripciones de imágenes.',
+ 'badge' => 'ALT',
+ 'save' => 'Guardar',
+ ],
+
'emoji_picker' => [
'search' => 'Buscar emoji',
'empty' => 'No se encontraron emojis',
diff --git a/lang/fr/posts.php b/lang/fr/posts.php
index e228799f..79a251d1 100644
--- a/lang/fr/posts.php
+++ b/lang/fr/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Ajouter :count',
],
+ 'alt_text' => [
+ 'label' => 'Texte alternatif',
+ 'edit' => 'Modifier le texte alternatif',
+ 'placeholder' => 'Décrivez cette image pour les personnes utilisant un lecteur d\'écran',
+ 'hint' => 'Publié sur les plateformes qui prennent en charge les descriptions d\'images.',
+ 'badge' => 'ALT',
+ 'save' => 'Enregistrer',
+ ],
+
'emoji_picker' => [
'search' => 'Rechercher un émoji',
'empty' => 'Aucun émoji trouvé',
diff --git a/lang/it/posts.php b/lang/it/posts.php
index e98a6a98..504c60cd 100644
--- a/lang/it/posts.php
+++ b/lang/it/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Aggiungi :count',
],
+ 'alt_text' => [
+ 'label' => 'Testo alternativo',
+ 'edit' => 'Modifica testo alternativo',
+ 'placeholder' => 'Descrivi questa immagine per le persone che usano screen reader',
+ 'hint' => 'Pubblicato sulle piattaforme che supportano le descrizioni delle immagini.',
+ 'badge' => 'ALT',
+ 'save' => 'Salva',
+ ],
+
'emoji_picker' => [
'search' => 'Cerca emoji',
'empty' => 'Nessuna emoji trovata',
diff --git a/lang/ja/posts.php b/lang/ja/posts.php
index 2bbc2efa..5b76fec0 100644
--- a/lang/ja/posts.php
+++ b/lang/ja/posts.php
@@ -378,6 +378,15 @@
'add_count' => ':count 件を追加',
],
+ 'alt_text' => [
+ 'label' => '代替テキスト',
+ 'edit' => '代替テキストを編集',
+ 'placeholder' => 'スクリーンリーダーを使用する人のためにこの画像を説明してください',
+ 'hint' => '画像の説明に対応しているプラットフォームに公開されます。',
+ 'badge' => 'ALT',
+ 'save' => '保存',
+ ],
+
'emoji_picker' => [
'search' => '絵文字を検索',
'empty' => '絵文字が見つかりません',
diff --git a/lang/ko/posts.php b/lang/ko/posts.php
index 44fdd030..dc7932ae 100644
--- a/lang/ko/posts.php
+++ b/lang/ko/posts.php
@@ -378,6 +378,15 @@
'add_count' => ':count개 추가',
],
+ 'alt_text' => [
+ 'label' => '대체 텍스트',
+ 'edit' => '대체 텍스트 편집',
+ 'placeholder' => '화면 낭독 프로그램을 사용하는 사람들을 위해 이 이미지를 설명하세요',
+ 'hint' => '이미지 설명을 지원하는 플랫폼에 게시됩니다.',
+ 'badge' => 'ALT',
+ 'save' => '저장',
+ ],
+
'emoji_picker' => [
'search' => '이모지 검색',
'empty' => '이모지를 찾을 수 없습니다',
diff --git a/lang/nl/posts.php b/lang/nl/posts.php
index 888d9985..d76ddba1 100644
--- a/lang/nl/posts.php
+++ b/lang/nl/posts.php
@@ -378,6 +378,15 @@
'add_count' => ':count toevoegen',
],
+ 'alt_text' => [
+ 'label' => 'Alt-tekst',
+ 'edit' => 'Alt-tekst bewerken',
+ 'placeholder' => 'Beschrijf deze afbeelding voor mensen die schermlezers gebruiken',
+ 'hint' => 'Wordt gepubliceerd op platforms die afbeeldingsbeschrijvingen ondersteunen.',
+ 'badge' => 'ALT',
+ 'save' => 'Opslaan',
+ ],
+
'emoji_picker' => [
'search' => 'Emoji zoeken',
'empty' => 'Geen emoji\'s gevonden',
diff --git a/lang/pl/posts.php b/lang/pl/posts.php
index 5f4cf0b7..162fd3e0 100644
--- a/lang/pl/posts.php
+++ b/lang/pl/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Dodaj :count',
],
+ 'alt_text' => [
+ 'label' => 'Tekst alternatywny',
+ 'edit' => 'Edytuj tekst alternatywny',
+ 'placeholder' => 'Opisz ten obraz dla osób korzystających z czytników ekranu',
+ 'hint' => 'Publikowany na platformach obsługujących opisy obrazów.',
+ 'badge' => 'ALT',
+ 'save' => 'Zapisz',
+ ],
+
'emoji_picker' => [
'search' => 'Szukaj emoji',
'empty' => 'Nie znaleziono emoji',
diff --git a/lang/pt-BR/posts.php b/lang/pt-BR/posts.php
index 72a8a361..b0d4adbb 100644
--- a/lang/pt-BR/posts.php
+++ b/lang/pt-BR/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Adicionar :count',
],
+ 'alt_text' => [
+ 'label' => 'Texto alternativo',
+ 'edit' => 'Editar texto alternativo',
+ 'placeholder' => 'Descreva esta imagem para pessoas que usam leitores de tela',
+ 'hint' => 'Publicado nas plataformas que oferecem suporte a descrições de imagem.',
+ 'badge' => 'ALT',
+ 'save' => 'Salvar',
+ ],
+
'emoji_picker' => [
'search' => 'Buscar emoji',
'empty' => 'Nenhum emoji encontrado',
diff --git a/lang/ru/posts.php b/lang/ru/posts.php
index 4042f461..4d101e1e 100644
--- a/lang/ru/posts.php
+++ b/lang/ru/posts.php
@@ -378,6 +378,15 @@
'add_count' => 'Добавить :count',
],
+ 'alt_text' => [
+ 'label' => 'Альтернативный текст',
+ 'edit' => 'Изменить альтернативный текст',
+ 'placeholder' => 'Опишите это изображение для людей, использующих программы чтения с экрана',
+ 'hint' => 'Публикуется на платформах, поддерживающих описания изображений.',
+ 'badge' => 'ALT',
+ 'save' => 'Сохранить',
+ ],
+
'emoji_picker' => [
'search' => 'Поиск эмодзи',
'empty' => 'Эмодзи не найдены',
diff --git a/lang/tr/posts.php b/lang/tr/posts.php
index 8457a4ab..acba24a4 100644
--- a/lang/tr/posts.php
+++ b/lang/tr/posts.php
@@ -380,6 +380,15 @@
'add_count' => ':count tane ekle',
],
+ 'alt_text' => [
+ 'label' => 'Alternatif metin',
+ 'edit' => 'Alternatif metni düzenle',
+ 'placeholder' => 'Ekran okuyucu kullanan kişiler için bu görseli açıklayın',
+ 'hint' => 'Görsel açıklamalarını destekleyen platformlarda yayınlanır.',
+ 'badge' => 'ALT',
+ 'save' => 'Kaydet',
+ ],
+
'emoji_picker' => [
'search' => 'Emoji ara',
'empty' => 'Emoji bulunamadı',
diff --git a/lang/zh/posts.php b/lang/zh/posts.php
index d490c1cc..81d23064 100644
--- a/lang/zh/posts.php
+++ b/lang/zh/posts.php
@@ -378,6 +378,15 @@
'add_count' => '添加 :count 个',
],
+ 'alt_text' => [
+ 'label' => '替代文本',
+ 'edit' => '编辑替代文本',
+ 'placeholder' => '为使用屏幕阅读器的用户描述此图片',
+ 'hint' => '发布到支持图片描述的平台。',
+ 'badge' => 'ALT',
+ 'save' => '保存',
+ ],
+
'emoji_picker' => [
'search' => '搜索表情',
'empty' => '未找到表情',
diff --git a/resources/js/components/posts/editor/AltTextDialog.vue b/resources/js/components/posts/editor/AltTextDialog.vue
new file mode 100644
index 00000000..6e863ca2
--- /dev/null
+++ b/resources/js/components/posts/editor/AltTextDialog.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
diff --git a/resources/js/components/posts/editor/PostEditorComposer.vue b/resources/js/components/posts/editor/PostEditorComposer.vue
index 094dfdac..c190c6c6 100644
--- a/resources/js/components/posts/editor/PostEditorComposer.vue
+++ b/resources/js/components/posts/editor/PostEditorComposer.vue
@@ -1,6 +1,7 @@
@@ -269,6 +297,13 @@ const canRegenerateWithAi = (item: MediaItem): boolean => props.allowAiRegenerat
>
{{ formatBytes(item.size) }}
+
+ {{ $t('posts.edit.alt_text.badge') }}
+
@@ -308,6 +343,18 @@ const canRegenerateWithAi = (item: MediaItem): boolean => props.allowAiRegenerat
{{ $t('posts.ai.image_regenerate.button') }}
+
+
diff --git a/resources/js/types/media.ts b/resources/js/types/media.ts
index 26e1cba5..4a8a4fff 100644
--- a/resources/js/types/media.ts
+++ b/resources/js/types/media.ts
@@ -16,5 +16,6 @@ export interface MediaItem {
width?: number;
height?: number;
duration?: number;
+ alt_text?: string;
};
}