cdkTrapFocus from @angular/cdk/a11y confines keyboard focus to its host element while active — Tab and Shift+Tab cycle through focusable descendants but never leave the trap. It's the standard way to make a modal dialog accessible. Pair it with autofocus (or any initial-focus directive) on the first input so screen-reader users land in the right place.