diff --git a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
index 6e6bc3d6944283627afe1d9044ec8111e9575742..27769a03b7ebd03c1db3a8ad50ee02d5b5ce9a69 100644
--- a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
+++ b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts
@@ -10,6 +10,7 @@ export class OzgcloudDialogService {
   readonly WIZARD_DIALOG_CONFIG: DialogConfig = {
     width: '1000px',
     restoreFocus: false,
+    disableClose: true,
   };
 
   constructor(private dialog: Dialog) {}
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html
index 5ebc616b3fa6376d2cb5437ccf98b74c90f2888b..3868f94249128b79fe4e08b15d228fac0498165d 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.html
@@ -1,3 +1,7 @@
-<button (click)="onClick()" class="absolute right-3 top-3 text-text" data-test-id="close-bescheid">
+<button
+  (click)="clickEmitter.emit()"
+  class="absolute right-3 top-3 text-text"
+  data-test-id="close-bescheid"
+>
   <mat-icon>close</mat-icon>
 </button>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts
index 88edfcc33994a41c77e6ef8e46d7a53e6637ea0b..d143d1618f0b45bcf78d65061f489811034d219e 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.spec.ts
@@ -1,28 +1,15 @@
-import { Mock, mock } from '@alfa-client/test-utils';
-import { OzgcloudDialogService } from '@alfa-client/ui';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MatIcon } from '@angular/material/icon';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from '../vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
 import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-abbrechen-button.component';
 
 describe('VorgangDetailBescheidenAbbrechenButtonComponent', () => {
   let component: VorgangDetailBescheidenAbbrechenButtonComponent;
   let fixture: ComponentFixture<VorgangDetailBescheidenAbbrechenButtonComponent>;
 
-  let ozgcloudDialogService: Mock<OzgcloudDialogService>;
-
   beforeEach(async () => {
-    ozgcloudDialogService = mock(OzgcloudDialogService);
-
     await TestBed.configureTestingModule({
       declarations: [VorgangDetailBescheidenAbbrechenButtonComponent],
       imports: [MatIcon],
-      providers: [
-        {
-          provide: OzgcloudDialogService,
-          useValue: ozgcloudDialogService,
-        },
-      ],
     }).compileComponents();
 
     fixture = TestBed.createComponent(VorgangDetailBescheidenAbbrechenButtonComponent);
@@ -33,15 +20,4 @@ describe('VorgangDetailBescheidenAbbrechenButtonComponent', () => {
   it('should create', () => {
     expect(component).toBeTruthy();
   });
-
-  describe('onClick', () => {
-    it('should call ozgcloudDialogService.open', () => {
-      component.onClick();
-
-      expect(ozgcloudDialogService.openInCallingComponentContext).toHaveBeenCalledWith(
-        VorgangDetailBescheidenAbbrechenDialogComponent,
-        component.viewContainerRef,
-      );
-    });
-  });
 });
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts
index 41f0834080232437ba18c70f809071c2f9c3dc8a..4f1051d4c4c98c148725c077185d35463b916a6c 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component.ts
@@ -1,6 +1,4 @@
-import { OzgcloudDialogService } from '@alfa-client/ui';
-import { Component, ViewContainerRef } from '@angular/core';
-import { VorgangDetailBescheidenAbbrechenDialogComponent } from '../vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
+import { Component, EventEmitter, Output } from '@angular/core';
 
 @Component({
   selector: 'alfa-vorgang-detail-bescheiden-abbrechen-button',
@@ -8,15 +6,5 @@ import { VorgangDetailBescheidenAbbrechenDialogComponent } from '../vorgang-deta
   styles: [],
 })
 export class VorgangDetailBescheidenAbbrechenButtonComponent {
-  constructor(
-    private readonly ozgcloudDialogService: OzgcloudDialogService,
-    readonly viewContainerRef: ViewContainerRef,
-  ) {}
-
-  public onClick(): void {
-    this.ozgcloudDialogService.openInCallingComponentContext<VorgangDetailBescheidenAbbrechenDialogComponent>(
-      VorgangDetailBescheidenAbbrechenDialogComponent,
-      this.viewContainerRef,
-    );
-  }
+  @Output() public clickEmitter: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
 }
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html
index e2427e885a079271ae20cac54e8a0ea1f168013f..f1e668502936106b848030aa3635d0fd7323b7f6 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.html
@@ -6,11 +6,13 @@
   data-test-id="bescheid-wizard"
 >
   <div class="fixed inset-0 z-10 w-screen overflow-y-auto">
-    <div class="flex h-full items-end items-center justify-center p-8">
+    <div class="flex h-full items-center justify-center p-8">
       <div
         class="relative h-full w-full max-w-7xl transform overflow-hidden rounded-lg bg-background-200 px-6 py-10 text-left shadow-xl transition-all"
       >
-        <alfa-vorgang-detail-bescheiden-abbrechen-button></alfa-vorgang-detail-bescheiden-abbrechen-button>
+        <alfa-vorgang-detail-bescheiden-abbrechen-button
+          (clickEmitter)="cancelWizard()"
+        ></alfa-vorgang-detail-bescheiden-abbrechen-button>
         <form [formGroup]="formService.form" class="flex h-full flex-row gap-11">
           <alfa-vorgang-detail-bescheiden-steps
             class="flex w-1/2"
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
index c82b596f3669350ebd42f569cae44749fa9c92f8..b201b90bf4bf872be0f5c3461dd719624462f58b 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
@@ -1,6 +1,7 @@
 import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { PostfachService } from '@alfa-client/postfach-shared';
 import { Mock, dispatchEventFromFixture, mock, useFromMock } from '@alfa-client/test-utils';
+import { OzgcloudDialogService } from '@alfa-client/ui';
 import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
@@ -8,11 +9,13 @@ import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
 import { MatIcon } from '@angular/material/icon';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
+import { Subscription, of } from 'rxjs';
 import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid';
 import { createVorgangWithEingangResource } from '../../../../../vorgang-shared/test/vorgang';
 import { BescheidenFormService } from './bescheiden.formservice';
 import { VorgangDetailBescheidenResultComponent } from './vorgang-detail-bescheiden-result/vorgang-detail-bescheiden-result.component';
 import { VorgangDetailBescheidenAbbrechenButtonComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-button/vorgang-detail-bescheiden-abbrechen-button.component';
+import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
 import { VorgangDetailBescheidenStepsComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps.component';
 import { VorgangDetailBescheidenComponent } from './vorgang-detail-bescheiden.component';
 
@@ -23,8 +26,8 @@ describe('VorgangDetailBescheidenComponent', () => {
   let bescheidService: Mock<BescheidService>;
   let vorgangService: Mock<VorgangService>;
   let formService: BescheidenFormService;
-  let dialogRef: Mock<DialogRef>;
   let postfachService: Mock<PostfachService>;
+  let ozgcloudDialogService: Mock<OzgcloudDialogService>;
 
   let vorgangWithEingangResource: VorgangWithEingangResource;
   let bescheidDraftResource: BescheidResource;
@@ -35,8 +38,8 @@ describe('VorgangDetailBescheidenComponent', () => {
     bescheidService = mock(BescheidService);
     vorgangService = mock(VorgangService);
     formService = new BescheidenFormService(new UntypedFormBuilder(), useFromMock(bescheidService));
-    dialogRef = mock(DialogRef);
     postfachService = mock(PostfachService);
+    ozgcloudDialogService = mock(OzgcloudDialogService);
 
     vorgangWithEingangResource = createVorgangWithEingangResource();
     bescheidDraftResource = createBescheidResource();
@@ -70,7 +73,7 @@ describe('VorgangDetailBescheidenComponent', () => {
         },
         {
           provide: DialogRef,
-          useValue: dialogRef,
+          useValue: { keydownEvents: of(KeyboardEvent), close: jest.fn(), disableClose: false },
         },
         {
           provide: DIALOG_DATA,
@@ -80,12 +83,17 @@ describe('VorgangDetailBescheidenComponent', () => {
           provide: PostfachService,
           useValue: postfachService,
         },
+        {
+          provide: OzgcloudDialogService,
+          useValue: ozgcloudDialogService,
+        },
       ],
       imports: [ReactiveFormsModule],
     }).compileComponents();
 
     fixture = TestBed.createComponent(VorgangDetailBescheidenComponent);
     component = fixture.componentInstance;
+
     fixture.detectChanges();
   });
 
@@ -109,13 +117,40 @@ describe('VorgangDetailBescheidenComponent', () => {
 
       expect(patchValues).toBeCalledWith(bescheidDraftResource);
     });
+
+    it('should call handleEscapeKey', () => {
+      component.handleEscapeKey = jest.fn();
+
+      component.ngOnInit();
+
+      expect(component.handleEscapeKey).toHaveBeenCalled();
+    });
+  });
+
+  describe('handleEscapeKey', () => {
+    it('should subscribe to dialogRef.keydownEvents', () => {
+      component.handleEscapeKey();
+
+      expect(component.keydownEventsSubscription).toBeInstanceOf(Subscription);
+    });
+  });
+
+  describe('ngOnDestroy', () => {
+    it('should unsubscribe keydownEventsSubscription', () => {
+      component.keydownEventsSubscription = new Subscription();
+      jest.spyOn(component.keydownEventsSubscription, 'unsubscribe');
+
+      component.ngOnDestroy();
+
+      expect(component.keydownEventsSubscription.unsubscribe).toHaveBeenCalled();
+    });
   });
 
   describe('onClose', () => {
     it('should call dialogRef.close', () => {
       component.onClose();
 
-      expect(dialogRef.close).toHaveBeenCalled();
+      expect(component.dialogRef.close).toHaveBeenCalled();
     });
 
     it('should call vorgang service to reload current vorgang', () => {
@@ -135,7 +170,18 @@ describe('VorgangDetailBescheidenComponent', () => {
     it('should close dialog ref', () => {
       dispatchEventFromFixture(fixture, bescheidenResult, 'closeDialog');
 
-      expect(dialogRef.close).toHaveBeenCalled();
+      expect(component.dialogRef.close).toHaveBeenCalled();
+    });
+  });
+
+  describe('cancelWizard', () => {
+    it('should call ozgcloudDialogService.open', () => {
+      component.cancelWizard();
+
+      expect(ozgcloudDialogService.openInCallingComponentContext).toHaveBeenCalledWith(
+        VorgangDetailBescheidenAbbrechenDialogComponent,
+        component.viewContainerRef,
+      );
     });
   });
 });
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
index c3a880423edbb95b2b2153db66b3202ae9dd7bad..a88075f699841c8e2b5d9c085023f6f087efc854 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
@@ -1,19 +1,24 @@
 import { BescheidResource } from '@alfa-client/bescheid-shared';
 import { PostfachService } from '@alfa-client/postfach-shared';
+import { OzgcloudDialogService } from '@alfa-client/ui';
 import { VorgangService } from '@alfa-client/vorgang-shared';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
-import { Component, Inject, OnInit } from '@angular/core';
+import { Component, Inject, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
+import { Subscription, filter } from 'rxjs';
 import { BescheidenFormService } from './bescheiden.formservice';
 import { BescheidenDialogData } from './bescheiden.model';
+import { VorgangDetailBescheidenAbbrechenDialogComponent } from './vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-abbrechen-dialog/vorgang-detail-bescheiden-abbrechen-dialog.component';
 
 @Component({
   selector: 'alfa-vorgang-detail-bescheiden',
   templateUrl: './vorgang-detail-bescheiden.component.html',
   providers: [BescheidenFormService],
 })
-export class VorgangDetailBescheidenComponent implements OnInit {
+export class VorgangDetailBescheidenComponent implements OnDestroy, OnInit {
   private readonly bescheidDraftResource: BescheidResource;
 
+  keydownEventsSubscription: Subscription;
+
   public activeStep: number = 1;
 
   constructor(
@@ -22,6 +27,8 @@ export class VorgangDetailBescheidenComponent implements OnInit {
     private readonly vorgangService: VorgangService,
     private readonly postfachService: PostfachService,
     @Inject(DIALOG_DATA) private readonly dialogData: BescheidenDialogData,
+    private readonly ozgcloudDialogService: OzgcloudDialogService,
+    readonly viewContainerRef: ViewContainerRef,
   ) {
     this.bescheidDraftResource = dialogData.bescheidDraftResource;
   }
@@ -29,6 +36,17 @@ export class VorgangDetailBescheidenComponent implements OnInit {
   ngOnInit(): void {
     this.formService.setVorgangWithEingangResource(this.dialogData.vorgangWithEingangResource);
     this.formService.patchValues(this.bescheidDraftResource);
+    this.handleEscapeKey();
+  }
+
+  handleEscapeKey(): void {
+    this.keydownEventsSubscription = this.dialogRef.keydownEvents
+      .pipe(filter((event) => event.key === 'Escape'))
+      .subscribe(() => this.cancelWizard());
+  }
+
+  ngOnDestroy(): void {
+    this.keydownEventsSubscription.unsubscribe();
   }
 
   public onClose(): void {
@@ -36,4 +54,11 @@ export class VorgangDetailBescheidenComponent implements OnInit {
     this.vorgangService.reloadCurrentVorgang();
     this.postfachService.setPostfachMailOnReload();
   }
+
+  public cancelWizard(): void {
+    this.ozgcloudDialogService.openInCallingComponentContext<VorgangDetailBescheidenAbbrechenDialogComponent>(
+      VorgangDetailBescheidenAbbrechenDialogComponent,
+      this.viewContainerRef,
+    );
+  }
 }