diff --git a/src/display/editor/alt_text.js b/src/display/editor/alt_text.js index b9f771503be69..304c7fb649e54 100644 --- a/src/display/editor/alt_text.js +++ b/src/display/editor/alt_text.js @@ -213,6 +213,13 @@ class AltText { this.#altTextButton.disabled = !enabled; } + shown() { + this.#editor._reportTelemetry({ + action: "pdfjs.image.alt_text.image_status_label_displayed", + data: { label: this.#label }, + }); + } + destroy() { this.#altTextButton?.remove(); this.#altTextButton = null; @@ -235,10 +242,6 @@ class AltText { const label = this.#label; // TODO: Update the l10n keys to avoid this. const type = label === "review" ? "to-review" : label; - this.#editor._reportTelemetry({ - action: "pdfjs.image.alt_text.image_status_label_displayed", - data: { label }, - }); button.classList.toggle("done", !!this.#altText); AltText._l10nPromise .get(`pdfjs-editor-new-alt-text-${type}-button-label`) diff --git a/src/display/editor/editor.js b/src/display/editor/editor.js index 540b47f441366..596374b782496 100644 --- a/src/display/editor/editor.js +++ b/src/display/editor/editor.js @@ -975,7 +975,7 @@ class AnnotationEditor { this._editToolbar = new EditorToolbar(this); this.div.append(this._editToolbar.render()); if (this.#altText) { - this._editToolbar.addAltTextButton(await this.#altText.render()); + await this._editToolbar.addAltText(this.#altText); } return this._editToolbar; diff --git a/src/display/editor/toolbar.js b/src/display/editor/toolbar.js index 66c0b93ede31b..131c6c30699c5 100644 --- a/src/display/editor/toolbar.js +++ b/src/display/editor/toolbar.js @@ -24,6 +24,8 @@ class EditorToolbar { #buttons = null; + #altText = null; + constructor(editor) { this.#editor = editor; } @@ -99,6 +101,7 @@ class EditorToolbar { show() { this.#toolbar.classList.remove("hidden"); + this.#altText?.shown(); } #addDeleteButton() { @@ -126,9 +129,11 @@ class EditorToolbar { return divider; } - addAltTextButton(button) { + async addAltText(altText) { + const button = await altText.render(); this.#addListenersToElement(button); this.#buttons.prepend(button, this.#divider); + this.#altText = altText; } addColorPicker(colorPicker) { diff --git a/web/new_alt_text_manager.js b/web/new_alt_text_manager.js index 06588b3204fdc..42567161cb191 100644 --- a/web/new_alt_text_manager.js +++ b/web/new_alt_text_manager.js @@ -114,6 +114,11 @@ class NewAltTextManager { createAutomaticallyButton.addEventListener("click", async () => { const checked = createAutomaticallyButton.getAttribute("aria-pressed") !== "true"; + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.ai_generation_check", + data: { status: checked }, + }); + if (this.#uiManager) { this.#uiManager.setPreference("enableGuessAltText", checked); await this.#uiManager.mlManager.toggleService("altText", checked);