diff --git a/artifacts/tx-os/src/locales/ar.json b/artifacts/tx-os/src/locales/ar.json
index a271384e..a3602141 100644
--- a/artifacts/tx-os/src/locales/ar.json
+++ b/artifacts/tx-os/src/locales/ar.json
@@ -854,13 +854,13 @@
"dragRow": "اسحب لإعادة الترتيب",
"editMeetingTitle": "تعديل عنوان الاجتماع",
"schedule": {
- "addRow": "أضف اجتماع جديد",
+ "addRow": "أضف اجتماع",
"newMeetingDefaultAr": "اجتماع جديد",
"newMeetingDefaultEn": "New meeting",
"timeStart": "وقت البداية",
"timeEnd": "وقت النهاية",
"timeOrderError": "وقت النهاية يجب أن يكون بعد وقت البداية",
- "addAttendee": "+ أضف حاضرًا",
+ "addAttendee": "أضف حاضر",
"addVirtualAttendee": "+ حاضر عبر الاتصال المرئي",
"addInternalAttendee": "+ حاضر داخلي",
"addExternalAttendee": "+ حاضر خارجي",
diff --git a/artifacts/tx-os/src/locales/en.json b/artifacts/tx-os/src/locales/en.json
index e7214a0e..76d2a2fe 100644
--- a/artifacts/tx-os/src/locales/en.json
+++ b/artifacts/tx-os/src/locales/en.json
@@ -809,7 +809,7 @@
"timeStart": "Start time",
"timeEnd": "End time",
"timeOrderError": "End time must be after start time",
- "addAttendee": "+ Add attendee",
+ "addAttendee": "Add attendee",
"addVirtualAttendee": "+ Virtual",
"addInternalAttendee": "+ Internal",
"addExternalAttendee": "+ External",
diff --git a/artifacts/tx-os/src/pages/executive-meetings.tsx b/artifacts/tx-os/src/pages/executive-meetings.tsx
index 64db08a8..ce39065b 100644
--- a/artifacts/tx-os/src/pages/executive-meetings.tsx
+++ b/artifacts/tx-os/src/pages/executive-meetings.tsx
@@ -1531,15 +1531,16 @@ function ScheduleSection({
type="button"
onClick={createRow}
disabled={creatingRow}
+ aria-label={t("executiveMeetings.schedule.addRow")}
+ aria-busy={creatingRow}
className="w-full flex items-center justify-center gap-2 py-2.5 text-sm text-[#0B1E3F] hover:bg-blue-50/60 focus:bg-blue-50/60 focus:outline-none transition-colors disabled:opacity-60"
data-testid="em-add-row-button"
>
-
-
- {creatingRow
- ? t("common.loading")
- : t("executiveMeetings.schedule.addRow")}
-
+ {creatingRow ? (
+ {t("common.loading")}
+ ) : (
+
+ )}
@@ -3007,7 +3008,7 @@ function AttendeeFlow({
aria-label={addLabel}
className="text-xs text-blue-600 hover:text-blue-700 hover:bg-blue-50 rounded px-2 py-1 min-h-[1.5rem] border border-dashed border-blue-300 hover:border-blue-500 transition-colors"
>
- {addLabel}
+ +
)}
diff --git a/attached_assets/image_1777527422272.png b/attached_assets/image_1777527422272.png
new file mode 100644
index 00000000..897c31a3
Binary files /dev/null and b/attached_assets/image_1777527422272.png differ