diff --git a/web/app.js b/web/app.js
index 5ea15795d..847915af9 100644
--- a/web/app.js
+++ b/web/app.js
@@ -504,7 +504,6 @@ const PDFViewerApplication = {
     this.pdfViewer = new PDFViewer({
       container,
       viewer,
-      hiddenCopyElement: appConfig.hiddenCopyElement,
       eventBus,
       renderingQueue: pdfRenderingQueue,
       linkService: pdfLinkService,
diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js
index f4dc3f7c4..9bd14f39f 100644
--- a/web/pdf_viewer.js
+++ b/web/pdf_viewer.js
@@ -83,8 +83,6 @@ function isValidAnnotationEditorMode(mode) {
  * @typedef {Object} PDFViewerOptions
  * @property {HTMLDivElement} container - The container for the viewer element.
  * @property {HTMLDivElement} [viewer] - The viewer element.
- * @property {HTMLDivElement} [hiddenCopyElement] - The hidden element used to
- *   check if all is selected.
  * @property {EventBus} eventBus - The application event bus.
  * @property {IPDFLinkService} linkService - The navigation/linking service.
  * @property {IDownloadManager} [downloadManager] - The download manager
@@ -241,7 +239,6 @@ class PDFViewer {
     }
     this.container = options.container;
     this.viewer = options.viewer || options.container.firstElementChild;
-    this.#hiddenCopyElement = options.hiddenCopyElement;
 
     if (
       typeof PDFJSDev === "undefined" ||
@@ -258,6 +255,11 @@ class PDFViewer {
         throw new Error("The `container` must be absolutely positioned.");
       }
     }
+    const hiddenCopyElement = (this.#hiddenCopyElement =
+      document.createElement("div"));
+    hiddenCopyElement.id = "hiddenCopyElement";
+    this.viewer.before(hiddenCopyElement);
+
     this.#resizeObserver.observe(this.container);
 
     this.eventBus = options.eventBus;
diff --git a/web/viewer-geckoview.html b/web/viewer-geckoview.html
index dffd5d0a2..a13ba8195 100644
--- a/web/viewer-geckoview.html
+++ b/web/viewer-geckoview.html
@@ -82,7 +82,6 @@ See https://github.com/adobe-type-tools/cmap-resources
       <div id="mainContainer">
 
         <div id="viewerContainer" tabindex="0">
-          <div id="hiddenCopyElement"></div>
           <div id="viewer" class="pdfViewer"></div>
         </div>
       </div> <!-- mainContainer -->
diff --git a/web/viewer-geckoview.js b/web/viewer-geckoview.js
index 8921de3bf..15a2d2d04 100644
--- a/web/viewer-geckoview.js
+++ b/web/viewer-geckoview.js
@@ -41,7 +41,6 @@ function getViewerConfiguration() {
     appContainer: document.body,
     mainContainer,
     viewerContainer: document.getElementById("viewer"),
-    hiddenCopyElement: document.getElementById("hiddenCopyElement"),
     toolbar: {
       mainContainer,
       container: document.getElementById("floatingToolbar"),
diff --git a/web/viewer.html b/web/viewer.html
index bb0d20400..4c0583c67 100644
--- a/web/viewer.html
+++ b/web/viewer.html
@@ -385,7 +385,6 @@ See https://github.com/adobe-type-tools/cmap-resources
         </div>
 
         <div id="viewerContainer" tabindex="0">
-          <div id="hiddenCopyElement"></div>
           <div id="viewer" class="pdfViewer"></div>
         </div>
       </div> <!-- mainContainer -->
diff --git a/web/viewer.js b/web/viewer.js
index cbe1a3776..7a8dabf53 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -41,7 +41,6 @@ function getViewerConfiguration() {
     appContainer: document.body,
     mainContainer: document.getElementById("viewerContainer"),
     viewerContainer: document.getElementById("viewer"),
-    hiddenCopyElement: document.getElementById("hiddenCopyElement"),
     toolbar: {
       container: document.getElementById("toolbarViewer"),
       numPages: document.getElementById("numPages"),