diff --git a/src/demo-app/a11y/a11y-module.ts b/src/demo-app/a11y/a11y-module.ts
index 9d4bc213f48..610b80c10c2 100644
--- a/src/demo-app/a11y/a11y-module.ts
+++ b/src/demo-app/a11y/a11y-module.ts
@@ -4,7 +4,7 @@ import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {RouterModule} from '@angular/router';
import {ACCESSIBILITY_DEMO_ROUTES} from './routes';
import {DemoMaterialModule} from '../demo-material-module';
-import {AccessibilityHome, AccessibilityDemo} from './a11y';
+import {AccessibilityDemo, AccessibilityHome} from './a11y';
import {ButtonAccessibilityDemo} from './button/button-a11y';
import {ButtonToggleAccessibilityDemo} from './button-toggle/button-toggle-a11y';
import {CheckboxAccessibilityDemo} from './checkbox/checkbox-a11y';
@@ -12,6 +12,7 @@ import {ChipsAccessibilityDemo} from './chips/chips-a11y';
import {GridListAccessibilityDemo} from './grid-list/grid-list-a11y';
import {RadioAccessibilityDemo} from './radio/radio-a11y';
import {DatepickerAccessibilityDemo} from './datepicker/datepicker-a11y';
+import {InputAccessibilityDemo} from './input/input-a11y';
@NgModule({
imports: [
@@ -40,6 +41,7 @@ export class AccessibilityRoutingModule {}
ChipsAccessibilityDemo,
DatepickerAccessibilityDemo,
GridListAccessibilityDemo,
+ InputAccessibilityDemo,
RadioAccessibilityDemo,
]
})
diff --git a/src/demo-app/a11y/a11y.ts b/src/demo-app/a11y/a11y.ts
index 85cbd8805b8..ffa30d862af 100644
--- a/src/demo-app/a11y/a11y.ts
+++ b/src/demo-app/a11y/a11y.ts
@@ -23,6 +23,7 @@ export class AccessibilityDemo {
{name: 'Chips', route: 'chips'},
{name: 'Datepicker', route: 'datepicker'},
{name: 'Grid list', route: 'grid-list'},
+ {name: 'Input', route: 'input'},
{name: 'Radio buttons', route: 'radio'},
];
}
diff --git a/src/demo-app/a11y/input/input-a11y.html b/src/demo-app/a11y/input/input-a11y.html
new file mode 100644
index 00000000000..41fd8320a7d
--- /dev/null
+++ b/src/demo-app/a11y/input/input-a11y.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+ Textarea input (e.g. comment box)
+
+
+ Leave us a comment!
+ {{commentCount}}/{{commentMax}}
+
+
diff --git a/src/demo-app/a11y/input/input-a11y.ts b/src/demo-app/a11y/input/input-a11y.ts
new file mode 100644
index 00000000000..c1782d33bd9
--- /dev/null
+++ b/src/demo-app/a11y/input/input-a11y.ts
@@ -0,0 +1,30 @@
+import {Component} from '@angular/core';
+
+const USD_TO_JPY = 110.29;
+
+@Component({
+ moduleId: module.id,
+ selector: 'input-a11y',
+ templateUrl: 'input-a11y.html',
+})
+export class InputAccessibilityDemo {
+ firstName: string;
+ lastName: string;
+ password: string;
+ showPassword = false;
+ email: string;
+ usd: number;
+ comment: string;
+ commentMax = 200;
+
+ get passwordType() { return this.showPassword ? 'text' : 'password'; }
+
+ get passwordToggleLabel() { return this.showPassword ? 'Hide password' : 'Reveal password'; }
+
+ get passwordToggleIcon() { return this.showPassword ? 'visibility_off' : 'visibility'; }
+
+ get jpy() { return this.usd ? this.usd * USD_TO_JPY : this.usd; }
+ set jpy(value) { this.usd = value ? value / USD_TO_JPY : value; }
+
+ get commentCount() { return this.comment ? this.comment.length : 0; }
+}
diff --git a/src/demo-app/a11y/routes.ts b/src/demo-app/a11y/routes.ts
index 862425d3927..70477338e79 100644
--- a/src/demo-app/a11y/routes.ts
+++ b/src/demo-app/a11y/routes.ts
@@ -7,6 +7,7 @@ import {GridListAccessibilityDemo} from './grid-list/grid-list-a11y';
import {RadioAccessibilityDemo} from './radio/radio-a11y';
import {AccessibilityHome} from './a11y';
import {DatepickerAccessibilityDemo} from './datepicker/datepicker-a11y';
+import {InputAccessibilityDemo} from './input/input-a11y';
export const ACCESSIBILITY_DEMO_ROUTES: Routes = [
{path: '', component: AccessibilityHome},
@@ -16,5 +17,6 @@ export const ACCESSIBILITY_DEMO_ROUTES: Routes = [
{path: 'chips', component: ChipsAccessibilityDemo},
{path: 'datepicker', component: DatepickerAccessibilityDemo},
{path: 'grid-list', component: GridListAccessibilityDemo},
+ {path: 'input', component: InputAccessibilityDemo},
{path: 'radio', component: RadioAccessibilityDemo},
];