&& nativeEvent.getKeyCode() == KeyCodes.KEY_TAB
&& nativeEvent.getShiftKey()) {
nativeEvent.preventDefault();
- FocusUtil.focusOnLastFocusableElement(this.getElement());
+ FocusUtil.focusOnLastFocusableElement(getElement());
}
if (nativeEvent.getEventTarget().cast() == topTabStop
&& nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
&& nativeEvent.getKeyCode() == KeyCodes.KEY_TAB
&& !nativeEvent.getShiftKey()) {
nativeEvent.preventDefault();
- FocusUtil.focusOnFirstFocusableElement(this.getElement());
+ FocusUtil.focusOnFirstFocusableElement(getElement());
}
if (nativeEvent.getEventTarget().cast() == bottomTabStop
&& nativeEvent.getKeyCode() == KeyCodes.KEY_BACKSPACE) {
public void setVaadinModality(boolean modality) {
vaadinModality = modality;
if (vaadinModality) {
+ getElement().setAttribute("aria-modal", "true");
+ Roles.getDialogRole().set(getElement());
if (isAttached()) {
showModalityCurtain();
}
addTabBlockHandlers();
deferOrdering();
} else {
+ getElement().removeAttribute("aria-modal");
+ Roles.getDialogRole().remove(getElement());
if (modalityCurtain != null) {
if (isAttached()) {
hideModalityCurtain();
*/
package com.vaadin.tests.components.window;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
}
+ @Test
+ public void verifyAriaModalAndRoleAttributes() {
+ waitForElementPresent(By.id("firstButton"));
+ WebElement button = findElement(By.id("firstButton"));
+ button.click();
+
+ waitForElementPresent(By.className("v-window"));
+ WebElement windowElement = findElement(By.className("v-window"));
+ String ariaModal = windowElement.getAttribute("aria-modal");
+ assertEquals("true", ariaModal);
+ String role = windowElement.getAttribute("role");
+ assertEquals("dialog", role);
+
+ }
+
private void pressEscAndWait() {
new Actions(driver).sendKeys(Keys.ESCAPE).build().perform();
sleep(100);