Ver código fonte

Merge pull request #4288 from overleaf/jel-skip-to-content

Add "Skip to content" to improve accessibility

GitOrigin-RevId: 43368a65057656bdea10b6be3c598d68bd8e2d40
Jessica Lawshe 5 anos atrás
pai
commit
bb882c697c
37 arquivos alterados com 65 adições e 37 exclusões
  1. 1 1
      services/web/app/views/beta_program/opt_in.pug
  2. 1 1
      services/web/app/views/general/400.pug
  3. 1 1
      services/web/app/views/general/404.pug
  4. 1 1
      services/web/app/views/general/500.pug
  5. 1 1
      services/web/app/views/general/account-merge-error.pug
  6. 1 1
      services/web/app/views/general/closed.pug
  7. 1 0
      services/web/app/views/general/post-gateway.pug
  8. 1 1
      services/web/app/views/general/unsupported-browser.pug
  9. 2 0
      services/web/app/views/layout.pug
  10. 1 0
      services/web/app/views/project/editor.pug
  11. 1 0
      services/web/app/views/project/importing.pug
  12. 2 2
      services/web/app/views/project/invite/not-valid.pug
  13. 1 1
      services/web/app/views/project/invite/show.pug
  14. 1 1
      services/web/app/views/project/list.pug
  15. 1 1
      services/web/app/views/subscriptions/canceled_subscription.pug
  16. 1 1
      services/web/app/views/subscriptions/dashboard.pug
  17. 1 1
      services/web/app/views/subscriptions/new.pug
  18. 2 2
      services/web/app/views/subscriptions/plans.pug
  19. 1 1
      services/web/app/views/subscriptions/successful_subscription.pug
  20. 1 1
      services/web/app/views/subscriptions/team/invite.pug
  21. 1 3
      services/web/app/views/subscriptions/upgradeToAnnual.pug
  22. 1 1
      services/web/app/views/user/confirm_email.pug
  23. 1 1
      services/web/app/views/user/login.pug
  24. 1 1
      services/web/app/views/user/logout.pug
  25. 1 1
      services/web/app/views/user/one_time_login.pug
  26. 1 1
      services/web/app/views/user/passwordReset.pug
  27. 1 1
      services/web/app/views/user/reconfirm.pug
  28. 1 1
      services/web/app/views/user/register.pug
  29. 2 2
      services/web/app/views/user/restricted.pug
  30. 1 1
      services/web/app/views/user/sessions.pug
  31. 1 1
      services/web/app/views/user/setPassword.pug
  32. 1 1
      services/web/app/views/user/settings.pug
  33. 1 1
      services/web/app/views/user_membership/index.pug
  34. 1 1
      services/web/app/views/user_membership/new.pug
  35. 24 0
      services/web/frontend/stylesheets/components/navbar.less
  36. 2 1
      services/web/locales/en.json
  37. 1 1
      services/web/modules/user-activate/app/views/user/activate.pug

+ 1 - 1
services/web/app/views/beta_program/opt_in.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container.beta-opt-in-wrapper
 		.container.beta-opt-in-wrapper
 			.row
 			.row
 				.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
 				.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2

+ 1 - 1
services/web/app/views/general/400.pug

@@ -5,7 +5,7 @@ block vars
 
 
 block body
 block body
 	body.full-height
 	body.full-height
-		main.content.content-alt.full-height
+		main.content.content-alt.full-height#main-content
 			.container.full-height
 			.container.full-height
 				.error-container.full-height
 				.error-container.full-height
 					.error-details
 					.error-details

+ 1 - 1
services/web/app/views/general/404.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.error-container
 			.error-container
 				.error-details
 				.error-details

+ 1 - 1
services/web/app/views/general/500.pug

@@ -5,7 +5,7 @@ block vars
 
 
 block body
 block body
 	body.full-height
 	body.full-height
-		main.content.content-alt.full-height
+		main.content.content-alt.full-height#main-content
 			.container.full-height
 			.container.full-height
 				.error-container.full-height
 				.error-container.full-height
 					.error-details
 					.error-details

+ 1 - 1
services/web/app/views/general/account-merge-error.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3
 				.col-md-6.col-md-offset-3

+ 1 - 1
services/web/app/views/general/closed.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content
+	main.content#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2.text-center
 				.col-md-8.col-md-offset-2.text-center

+ 1 - 0
services/web/app/views/general/post-gateway.pug

@@ -3,6 +3,7 @@ extends ../layout
 block vars
 block vars
 	- var suppressNavbar = true
 	- var suppressNavbar = true
 	- var suppressFooter = true
 	- var suppressFooter = true
+	- var suppressSkipToContent = true
 
 
 block content
 block content
 	script(type="template", id="gateway-data")!= StringHelper.stringifyJsonForScript({ params: form_data })
 	script(type="template", id="gateway-data")!= StringHelper.stringifyJsonForScript({ params: form_data })

+ 1 - 1
services/web/app/views/general/unsupported-browser.pug

@@ -5,7 +5,7 @@ block vars
 
 
 block body
 block body
 	body.full-height
 	body.full-height
-		main.content.content-alt.full-height
+		main.content.content-alt.full-height#main-content
 			.container.full-height
 			.container.full-height
 				.error-container.full-height
 				.error-container.full-height
 					.error-details
 					.error-details

+ 2 - 0
services/web/app/views/layout.pug

@@ -107,6 +107,8 @@ html(
 		if(settings.recaptcha && settings.recaptcha.siteKeyV3)
 		if(settings.recaptcha && settings.recaptcha.siteKeyV3)
 			script(type="text/javascript", nonce=scriptNonce, src="https://www.recaptcha.net/recaptcha/api.js?render="+settings.recaptcha.siteKeyV3)
 			script(type="text/javascript", nonce=scriptNonce, src="https://www.recaptcha.net/recaptcha/api.js?render="+settings.recaptcha.siteKeyV3)
 
 
+		if (typeof(suppressSkipToContent) == "undefined")
+			a(class="skip-to-content" href="#main-content") #{translate('skip_to_content')}
 
 
 		if (typeof(suppressNavbar) == "undefined")
 		if (typeof(suppressNavbar) == "undefined")
 			include layout/navbar
 			include layout/navbar

+ 1 - 0
services/web/app/views/project/editor.pug

@@ -3,6 +3,7 @@ extends ../layout
 block vars
 block vars
 	- var suppressNavbar = true
 	- var suppressNavbar = true
 	- var suppressFooter = true
 	- var suppressFooter = true
+	- var suppressSkipToContent = true
 	- metadata.robotsNoindexNofollow = true
 	- metadata.robotsNoindexNofollow = true
 
 
 block _headLinks
 block _headLinks

+ 1 - 0
services/web/app/views/project/importing.pug

@@ -3,6 +3,7 @@ extends ../layout
 block vars
 block vars
 	- var suppressNavbar = true
 	- var suppressNavbar = true
 	- var suppressFooter = true
 	- var suppressFooter = true
+	- var suppressSkipToContent = true
 	- metadata.robotsNoindexNofollow = true
 	- metadata.robotsNoindexNofollow = true
 
 
 block content
 block content

+ 2 - 2
services/web/app/views/project/invite/not-valid.pug

@@ -1,7 +1,7 @@
 extends ../../layout
 extends ../../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2
@@ -15,4 +15,4 @@ block content
 						.row.text-center.actions
 						.row.text-center.actions
 							.col-md-12
 							.col-md-12
 								a.btn.btn-info(href="/project") #{translate("back_to_your_projects")}
 								a.btn.btn-info(href="/project") #{translate("back_to_your_projects")}
-							
+							

+ 1 - 1
services/web/app/views/project/invite/show.pug

@@ -1,7 +1,7 @@
 extends ../../layout
 extends ../../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2

+ 1 - 1
services/web/app/views/project/list.pug

@@ -16,7 +16,7 @@ block append meta
 
 
 block content
 block content
 
 
-	main.content.content-alt.project-list-page(
+	main.content.content-alt.project-list-page#main-content(
 		ng-controller="ProjectPageController"
 		ng-controller="ProjectPageController"
 		role="main"
 		role="main"
 	)
 	)

+ 1 - 1
services/web/app/views/subscriptions/canceled_subscription.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2

+ 1 - 1
services/web/app/views/subscriptions/dashboard.pug

@@ -14,7 +14,7 @@ block append meta
 		meta(name="ol-recomendedCurrency" content=personalSubscription.recurly.currency)
 		meta(name="ol-recomendedCurrency" content=personalSubscription.recurly.currency)
 
 
 block content
 block content
-	main.content.content-alt(ng-cloak)
+	main.content.content-alt#main-content(ng-cloak)
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2

+ 1 - 1
services/web/app/views/subscriptions/new.pug

@@ -9,7 +9,7 @@ block head-scripts
 	script(type="text/javascript", nonce=scriptNonce, src="https://js.recurly.com/v4/recurly.js")
 	script(type="text/javascript", nonce=scriptNonce, src="https://js.recurly.com/v4/recurly.js")
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container(ng-controller="NewSubscriptionController" ng-cloak)
 		.container(ng-controller="NewSubscriptionController" ng-cloak)
 			.row.card-group
 			.row.card-group
 				.col-md-5.col-md-push-4
 				.col-md-5.col-md-push-4

+ 2 - 2
services/web/app/views/subscriptions/plans.pug

@@ -11,7 +11,7 @@ block append meta
 	meta(name="ol-groupPlans" data-type="json" content=groupPlans)
 	meta(name="ol-groupPlans" data-type="json" content=groupPlans)
 
 
 block content
 block content
-	.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.user-notifications
 			.user-notifications
 				ul.list-unstyled(ng-cloak)
 				ul.list-unstyled(ng-cloak)
@@ -21,7 +21,7 @@ block content
 								span To help you work from home throughout 2021, we're providing discounted plans and special initiatives.
 								span To help you work from home throughout 2021, we're providing discounted plans and special initiatives.
 							.notification-action
 							.notification-action
 								a.btn.btn-sm.btn-info(href="https://www.overleaf.com/events/wfh2021" event-tracking="Event-Pages" event-tracking-trigger="click" event-tracking-ga="WFH-Offer-Click" event-tracking-label="Plans-Banner") Upgrade
 								a.btn.btn-sm.btn-info(href="https://www.overleaf.com/events/wfh2021" event-tracking="Event-Pages" event-tracking-trigger="click" event-tracking-ga="WFH-Offer-Click" event-tracking-label="Plans-Banner") Upgrade
-		main.content-page
+		.content-page
 			.plans(ng-controller="PlansController")
 			.plans(ng-controller="PlansController")
 				.container(ng-cloak)
 				.container(ng-cloak)
 					.row
 					.row

+ 1 - 1
services/web/app/views/subscriptions/successful_subscription.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2

+ 1 - 1
services/web/app/views/subscriptions/team/invite.pug

@@ -5,7 +5,7 @@ block append meta
 	meta(name="ol-inviteToken" content=inviteToken)
 	meta(name="ol-inviteToken" content=inviteToken)
 
 
 block content
 block content
-	main.content.content-alt.team-invite
+	main.content.content-alt.team-invite#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2
 				.col-md-8.col-md-offset-2

+ 1 - 3
services/web/app/views/subscriptions/upgradeToAnnual.pug

@@ -2,7 +2,7 @@ extends ../layout
 
 
 block content
 block content
 
 
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container(ng-controller="AnnualUpgradeController")
 		.container(ng-controller="AnnualUpgradeController")
 			.row(ng-cloak)
 			.row(ng-cloak)
 				.col-md-6.col-md-offset-3
 				.col-md-6.col-md-offset-3
@@ -22,5 +22,3 @@ block content
 
 
 						div(ng-show="upgradeComplete")
 						div(ng-show="upgradeComplete")
 							h3  #{translate("annual_billing_enabled")}, #{translate("thank_you")}.
 							h3  #{translate("annual_billing_enabled")}, #{translate("thank_you")}.
-
-

+ 1 - 1
services/web/app/views/user/confirm_email.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4

+ 1 - 1
services/web/app/views/user/login.pug

@@ -4,7 +4,7 @@ block vars
 	- metadata = { viewport: true }
 	- metadata = { viewport: true }
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4

+ 1 - 1
services/web/app/views/user/logout.pug

@@ -5,7 +5,7 @@ block vars
 
 
 block content
 block content
 	.content.content-alt
 	.content.content-alt
-		main.login-register-container
+		main.login-register-container#main-content
 			.card.login-register-card
 			.card.login-register-card
 				.login-register-header
 				.login-register-header
 					h1.login-register-header-heading #{translate("log_out")}
 					h1.login-register-header-heading #{translate("log_out")}

+ 1 - 1
services/web/app/views/user/one_time_login.pug

@@ -4,7 +4,7 @@ block vars
 	- metadata = { viewport: true }
 	- metadata = { viewport: true }
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4

+ 1 - 1
services/web/app/views/user/passwordReset.pug

@@ -16,7 +16,7 @@ block content
 			data-badge="inline"
 			data-badge="inline"
 		)
 		)
 
 
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4

+ 1 - 1
services/web/app/views/user/reconfirm.pug

@@ -14,7 +14,7 @@ block content
 			data-badge="inline"
 			data-badge="inline"
 		)
 		)
 
 
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-sm-12.col-md-6.col-md-offset-3
 				.col-sm-12.col-md-6.col-md-offset-3

+ 1 - 1
services/web/app/views/user/register.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.registration_message
 				.registration_message

+ 2 - 2
services/web/app/views/user/restricted.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content
+	main.content#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-8.col-md-offset-2.text-center
 				.col-md-8.col-md-offset-2.text-center
@@ -10,4 +10,4 @@ block content
 					p
 					p
 						a(href="/")
 						a(href="/")
 							i.fa.fa-arrow-circle-o-left(aria-hidden="true")
 							i.fa.fa-arrow-circle-o-left(aria-hidden="true")
-							|  #{translate("take_me_home")}
+							|  #{translate("take_me_home")}

+ 1 - 1
services/web/app/views/user/sessions.pug

@@ -6,7 +6,7 @@ block append meta
 
 
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
 				.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2

+ 1 - 1
services/web/app/views/user/setPassword.pug

@@ -4,7 +4,7 @@ block append meta
 	meta(name="ol-passwordStrengthOptions" data-type="json" content=settings.passwordStrengthOptions)
 	meta(name="ol-passwordStrengthOptions" data-type="json" content=settings.passwordStrengthOptions)
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4

+ 1 - 1
services/web/app/views/user/settings.pug

@@ -8,7 +8,7 @@ block append meta
 	meta(name="ol-thirdPartyIds", data-type="json", content=thirdPartyIds)
 	meta(name="ol-thirdPartyIds", data-type="json", content=thirdPartyIds)
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-12.col-lg-10.col-lg-offset-1
 				.col-md-12.col-lg-10.col-lg-offset-1

+ 1 - 1
services/web/app/views/user_membership/index.pug

@@ -6,7 +6,7 @@ block append meta
 	meta(name="ol-groupSize", data-type="json", content=groupSize)
 	meta(name="ol-groupSize", data-type="json", content=groupSize)
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-10.col-md-offset-1
 				.col-md-10.col-md-offset-1

+ 1 - 1
services/web/app/views/user_membership/new.pug

@@ -1,7 +1,7 @@
 extends ../layout
 extends ../layout
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-10.col-md-offset-1
 				.col-md-10.col-md-offset-1

+ 24 - 0
services/web/frontend/stylesheets/components/navbar.less

@@ -585,3 +585,27 @@
     padding: @navbar-default-padding-v 0;
     padding: @navbar-default-padding-v 0;
   }
   }
 }
 }
+
+// Accessibility
+.skip-to-content {
+  color: @navbar-default-link-color;
+  background-color: @navbar-default-link-bg;
+  border: 2px solid transparent;
+  border-radius: @navbar-btn-border-radius;
+  font-size: @navbar-btn-font-size;
+  font-weight: @navbar-btn-font-weight;
+  left: @navbar-brand-width + @padding-lg;
+  line-height: @navbar-btn-line-height;
+  padding: @navbar-btn-padding;
+  position: absolute;
+  top: -200px;
+  z-index: @zindex-navbar + 1;
+
+  &:focus {
+    background-color: @navbar-default-link-hover-bg;
+    border: 2px solid @navbar-default-link-hover-color;
+    color: @white;
+    text-decoration: none;
+    top: @navbar-default-padding-v;
+  }
+}

+ 2 - 1
services/web/locales/en.json

@@ -1478,5 +1478,6 @@
   "page_current": "Page __page__, Current Page",
   "page_current": "Page __page__, Current Page",
   "go_page": "Go to page __page__",
   "go_page": "Go to page __page__",
   "pagination_navigation": "Pagination Navigation",
   "pagination_navigation": "Pagination Navigation",
-  "can_now_relink_dropbox": "You can now <0>relink your Dropbox account</0>."
+  "can_now_relink_dropbox": "You can now <0>relink your Dropbox account</0>.",
+  "skip_to_content": "Skip to content"
 }
 }

+ 1 - 1
services/web/modules/user-activate/app/views/user/activate.pug

@@ -4,7 +4,7 @@ block append meta
 	meta(name="ol-passwordStrengthOptions" data-type="json" content=settings.passwordStrengthOptions)
 	meta(name="ol-passwordStrengthOptions" data-type="json" content=settings.passwordStrengthOptions)
 
 
 block content
 block content
-	main.content.content-alt
+	main.content.content-alt#main-content
 		.container
 		.container
 			.row
 			.row
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
 				.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4