diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
index 61c7a25..d11ad48 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
@@ -107,7 +107,12 @@
   getMaxAccounts,
 } from '../../../utils/label-util';
 import {pluralize} from '../../../utils/string-util';
-import {fireAlert, fireEvent, fireServerError} from '../../../utils/event-util';
+import {
+  fireAlert,
+  fireEvent,
+  fireIronAnnounce,
+  fireServerError,
+} from '../../../utils/event-util';
 import {ErrorCallback} from '../../../api/rest';
 import {debounce, DelayedTask} from '../../../utils/async-util';
 
@@ -732,7 +737,7 @@
             bubbles: false,
           })
         );
-        this.fire('iron-announce', {text: 'Reply sent'}, {bubbles: true});
+        fireIronAnnounce(this, 'Reply sent');
         return accountAdditions;
       })
       .then(result => {
diff --git a/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts b/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
index 668f382..51b1c7d 100644
--- a/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
+++ b/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
@@ -40,6 +40,7 @@
 } from '../../../types/events';
 import {windowLocationReload} from '../../../utils/dom-util';
 import {debounce, DelayedTask} from '../../../utils/async-util';
+import {fireIronAnnounce} from '../../../utils/event-util';
 
 const HIDE_ALERT_TIMEOUT_MS = 5000;
 const CHECK_SIGN_IN_INTERVAL_MS = 60 * 1000;
@@ -340,7 +341,7 @@
     const el = this._createToastAlert(showDismiss);
     el.show(text, actionText, actionCallback);
     this._alertElement = el;
-    this.fire('iron-announce', {text: `Alert: ${text}`}, {bubbles: true});
+    fireIronAnnounce(this, `Alert: ${text}`);
     this.reporting.reportInteraction('show-alert', {text});
   }
 
@@ -375,7 +376,7 @@
     this._alertElement.show(errorText, actionText, () =>
       this._createLoginPopup()
     );
-    this.fire('iron-announce', {text: errorText}, {bubbles: true});
+    fireIronAnnounce(this, errorText);
     this.reporting.reportInteraction('show-auth-error', {text: errorText});
     this._refreshingCredentials = true;
     this._requestCheckLoggedIn();
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts b/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
index cc7bb98..6f35481 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
@@ -26,6 +26,7 @@
 import {IronA11yAnnouncer} from '@polymer/iron-a11y-announcer/iron-a11y-announcer';
 import {FixIronA11yAnnouncer} from '../../../types/types';
 import {appContext} from '../../../services/app-context';
+import {fireIronAnnounce} from '../../../utils/event-util';
 
 @customElement('gr-diff-mode-selector')
 export class GrDiffModeSelector extends LegacyElementMixin(PolymerElement) {
@@ -66,13 +67,7 @@
       announcement = 'Changed diff view to side by side';
     }
     if (announcement) {
-      this.fire(
-        'iron-announce',
-        {
-          text: announcement,
-        },
-        {bubbles: true}
-      );
+      fireIronAnnounce(this, announcement);
     }
   }
 
diff --git a/polygerrit-ui/app/elements/gr-app-element.ts b/polygerrit-ui/app/elements/gr-app-element.ts
index 12115fe..bf7a2af 100644
--- a/polygerrit-ui/app/elements/gr-app-element.ts
+++ b/polygerrit-ui/app/elements/gr-app-element.ts
@@ -80,6 +80,7 @@
 import {GerritView} from '../services/router/router-model';
 import {windowLocationReload} from '../utils/dom-util';
 import {LifeCycle} from '../constants/reporting';
+import {fireIronAnnounce} from '../utils/event-util';
 
 interface ErrorInfo {
   text: string;
@@ -511,7 +512,7 @@
     }
     // To fix bug announce read after each new view, we reset announce with
     // empty space
-    this.fire('iron-announce', {text: ' '}, {bubbles: true});
+    fireIronAnnounce(this, ' ');
   }
 
   _handleShortcutTriggered(event: ShortcutTriggeredEvent) {
diff --git a/polygerrit-ui/app/types/events.ts b/polygerrit-ui/app/types/events.ts
index b3d305d..11155c1 100644
--- a/polygerrit-ui/app/types/events.ts
+++ b/polygerrit-ui/app/types/events.ts
@@ -28,6 +28,7 @@
   EDITABLE_CONTENT_SAVE = 'editable-content-save',
   GR_RPC_LOG = 'gr-rpc-log',
   LOCATION_CHANGE = 'location-change',
+  IRON_ANNOUNCE = 'iron-announce',
   MOVED_LINK_CLICKED = 'moved-link-clicked',
   NETWORK_ERROR = 'network-error',
   OPEN_FIX_PREVIEW = 'open-fix-preview',
@@ -50,6 +51,7 @@
     'dialog-change': DialogChangeEvent;
     'editable-content-save': EditableContentSaveEvent;
     'location-change': LocationChangeEvent;
+    'iron-announce': IronAnnounceEvent;
     'moved-link-clicked': MovedLinkClickedEvent;
     'open-fix-preview': OpenFixPreviewEvent;
     /* prettier-ignore */
@@ -107,6 +109,11 @@
 }
 export type RpcLogEvent = CustomEvent<RpcLogEventDetail>;
 
+export interface IronAnnounceEventDetail {
+  text: string;
+}
+export type IronAnnounceEvent = CustomEvent<IronAnnounceEventDetail>;
+
 export interface LocationChangeEventDetail {
   hash: string;
   pathname: string;
diff --git a/polygerrit-ui/app/utils/event-util.ts b/polygerrit-ui/app/utils/event-util.ts
index 8ff13ed..080955f 100644
--- a/polygerrit-ui/app/utils/event-util.ts
+++ b/polygerrit-ui/app/utils/event-util.ts
@@ -20,6 +20,7 @@
 import {
   DialogChangeEventDetail,
   EventType,
+  IronAnnounceEventDetail,
   NetworkErrorEventDetail,
   PageErrorEventDetail,
   ServerErrorEventDetail,
@@ -82,6 +83,10 @@
   fire<DialogChangeEventDetail>(target, EventType.DIALOG_CHANGE, detail);
 }
 
+export function fireIronAnnounce(target: EventTarget, text: string) {
+  fire<IronAnnounceEventDetail>(target, EventType.IRON_ANNOUNCE, {text});
+}
+
 export function fireThreadListModifiedEvent(
   target: EventTarget,
   rootId: UrlEncodedCommentId,
