notifications.service.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * AccessibleBlockly
  3. *
  4. * Copyright 2016 Google Inc.
  5. * https://developers.google.com/blockly/
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the 'License');
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an 'AS IS' BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. */
  19. /**
  20. * @fileoverview Angular2 Service that notifies the user about actions that
  21. * they have taken, by updating an ARIA live region.
  22. * @author sll@google.com (Sean Lip)
  23. */
  24. blocklyApp.NotificationsService = ng.core
  25. .Class({
  26. constructor: [function() {
  27. this.statusMessage_ = '';
  28. }],
  29. getStatusMessage: function() {
  30. return this.statusMessage_;
  31. },
  32. setStatusMessage: function(newMessage) {
  33. // Introduce a temporary status message, so that if, e.g., two "copy"
  34. // operations are done in succession, both messages will be read.
  35. this.statusMessage_ = '';
  36. // We need a non-zero timeout here, otherwise NVDA does not read the
  37. // notification messages properly.
  38. var that = this;
  39. setTimeout(function() {
  40. that.statusMessage_ = newMessage;
  41. }, 20);
  42. }
  43. });