diff --git a/packages/review-editor/components/ReviewSubmissionDialog.tsx b/packages/review-editor/components/ReviewSubmissionDialog.tsx
index bb8f1ce44..a80149f5c 100644
--- a/packages/review-editor/components/ReviewSubmissionDialog.tsx
+++ b/packages/review-editor/components/ReviewSubmissionDialog.tsx
@@ -551,8 +551,10 @@ export function ReviewSubmissionDialog({
View on {platformLabel} after submitting
+
+
{/* Actions */}
-
);
diff --git a/packages/review-editor/components/ReviewSubmissionDialog.ui.test.tsx b/packages/review-editor/components/ReviewSubmissionDialog.ui.test.tsx
index dbc69af7b..326ece0a8 100644
--- a/packages/review-editor/components/ReviewSubmissionDialog.ui.test.tsx
+++ b/packages/review-editor/components/ReviewSubmissionDialog.ui.test.tsx
@@ -90,6 +90,15 @@ describe('ReviewSubmissionDialog submission outcomes', () => {
expect(actionButton()?.hasAttribute('data-pn-touch-target')).toBe(true);
});
+ test.skipIf(!hasDom)('keeps the action footer outside the scrollable form body', async () => {
+ await renderSubmission({ targets: [baseTarget], orphans: [] });
+
+ const scrollableBody = document.querySelector('textarea')?.closest('.overflow-y-auto');
+
+ expect(scrollableBody).not.toBeNull();
+ expect(scrollableBody?.contains(actionButton())).toBe(false);
+ });
+
test.skipIf(!hasDom)('ignores Escape while a platform submission is in flight', async () => {
let cancelCount = 0;
await renderSubmission(