I wrote a major mode for writing HTML entities encoding braille unicode characters. Here it is.

<pre>
(defvar braille-mode-hook nil)
(defvar braille-mode-map nil
  "Keymap for Braille mode.")
(defun braille-insert-punc (char) char)
(defun braille-insert-num (char)
  (read (concat
         "(lambda nil (interactive)(braille-switch-to-numbers)(insert \""
         char
         "\"))")))
(defun braille-insert-alnum (char)
  (read (concat
         "(lambda nil (interactive)(braille-switch-to-alpha)(insert \""
         char
         "\"))")))
(defun braille-insert-ucase-alnum (char)
  (read (concat
         "(lambda nil (interactive)(insert \"&#x2804;\")(funcall "
         (prin1-to-string (braille-insert-alnum char))
         "))")))
(defun braille-insert-ucase-alpha (char)
  (read (concat "(lambda nil (interactive)(insert \"&#x2804;\")(funcall "
                (prin1-to-string (braille-insert-alpha char))
                "))")))
(defun braille-insert-alpha (char) char)
(defun braille-switch-to-alpha ()
  (unless (eq braille-character-mode 'braille-alpha)
    (setq braille-character-mode 'braille-alpha)
    (insert "&#x2816;")))
(defun braille-switch-to-numbers ()
  (unless (eq braille-character-mode 'braille-numbers)
    (setq braille-character-mode 'braille-numbers)
    (insert "&#x283c;")))

(defvar braille-character-mode nil)
(unless nil
  (setq braille-character-mode 'braille-alpha))
(unless nil
  (setq braille-mode-map (make-sparse-keymap))
  (define-key braille-mode-map "," (braille-insert-punc "&#x2802;"))
  (define-key braille-mode-map "'" (braille-insert-punc "&#x2804;"))
  (define-key braille-mode-map ":" (braille-insert-punc "&#x2812;"))
  (define-key braille-mode-map ";" (braille-insert-punc "&#x2806;"))
  (define-key braille-mode-map "!" (braille-insert-punc "&#x2816;"))
  (define-key braille-mode-map "-" (braille-insert-punc "&#x2824;"))
  (define-key braille-mode-map "?" (braille-insert-punc "&#x2826;"))
  (define-key braille-mode-map "." (braille-insert-punc "&#x2832;"))
  ;;  (define-key braille-mode-map "\"" (braille-insert-punc "&#x2810;"))
  ;;  (define-key braille-mode-map "\\" (braille-insert-punc "&#x2833;"))
  ;;  (define-key braille-mode-map "!"  (braille-insert-punc "&#x282e;"))
  ;;  (define-key braille-mode-map "#"  (braille-insert-punc "&#x283c;"))
  ;;  (define-key braille-mode-map "$"  (braille-insert-punc "&#x282b;"))
  ;;  (define-key braille-mode-map "%"  (braille-insert-punc "&#x2829;"))
  ;;  (define-key braille-mode-map "&"  (braille-insert-punc "&#x282f;"))
  ;;  (define-key braille-mode-map "'"  (braille-insert-punc "&#x2820;"))
  ;;  (define-key braille-mode-map "("  (braille-insert-punc "&#x2837;"))
  ;;  (define-key braille-mode-map ")"  (braille-insert-punc "&#x283e;"))
  ;;  (define-key braille-mode-map "*"  (braille-insert-punc "&#x2821;"))
  ;;  (define-key braille-mode-map "+"  (braille-insert-punc "&#x282c;"))
  ;;  (define-key braille-mode-map ","  (braille-insert-punc "&#x2804;"))
  ;;  (define-key braille-mode-map "-"  (braille-insert-punc "&#x2824;"))
  ;;  (define-key braille-mode-map "."  (braille-insert-punc "&#x2828;"))
  ;;  (define-key braille-mode-map "/"  (braille-insert-punc "&#x280c;"))
  ;;  (define-key braille-mode-map ":"  (braille-insert-punc "&#x2831;"))
  ;;  (define-key braille-mode-map ";"  (braille-insert-punc "&#x2830;"))
  ;;  (define-key braille-mode-map "<"  (braille-insert-punc "&#x2823;"))
  ;;  (define-key braille-mode-map "="  (braille-insert-punc "&#x283f;"))
  ;;  (define-key braille-mode-map ">"  (braille-insert-punc "&#x281c;"))
  ;;  (define-key braille-mode-map "?"  (braille-insert-punc "&#x2839;"))
  ;;  (define-key braille-mode-map "@"  (braille-insert-punc "&#x2808;"))
  ;;  (define-key braille-mode-map "["  (braille-insert-punc "&#x282a;"))
  ;;  (define-key braille-mode-map "]"  (braille-insert-punc "&#x283b;"))
  ;;  (define-key braille-mode-map "^"  (braille-insert-punc "&#x2818;"))
  ;;  (define-key braille-mode-map "_"  (braille-insert-punc "&#x2838;"))

  (define-key braille-mode-map "1"  (braille-insert-num "&#x2801;"))
  (define-key braille-mode-map "2"  (braille-insert-num "&#x2803;"))
  (define-key braille-mode-map "3"  (braille-insert-num "&#x2809;"))
  (define-key braille-mode-map "4"  (braille-insert-num "&#x2819;"))
  (define-key braille-mode-map "5"  (braille-insert-num "&#x2811;"))
  (define-key braille-mode-map "6"  (braille-insert-num "&#x280b;"))
  (define-key braille-mode-map "7"  (braille-insert-num "&#x281b;"))
  (define-key braille-mode-map "8"  (braille-insert-num "&#x2813;"))
  (define-key braille-mode-map "9"  (braille-insert-num "&#x280a;"))
  (define-key braille-mode-map "0"  (braille-insert-num "&#x281a;"))

  (define-key braille-mode-map "a"  (braille-insert-alnum "&#x2801;"))
  (define-key braille-mode-map "b"  (braille-insert-alnum "&#x2803;"))
  (define-key braille-mode-map "c"  (braille-insert-alnum "&#x2809;"))
  (define-key braille-mode-map "d"  (braille-insert-alnum "&#x2819;"))
  (define-key braille-mode-map "e"  (braille-insert-alnum "&#x2811;"))
  (define-key braille-mode-map "f"  (braille-insert-alnum "&#x280b;"))
  (define-key braille-mode-map "g"  (braille-insert-alnum "&#x281b;"))
  (define-key braille-mode-map "h"  (braille-insert-alnum "&#x2813;"))
  (define-key braille-mode-map "i"  (braille-insert-alnum "&#x280a;"))
  (define-key braille-mode-map "j"  (braille-insert-alnum "&#x281a;"))

  (define-key braille-mode-map "k"  (braille-insert-alpha "&#x2805;"))
  (define-key braille-mode-map "l"  (braille-insert-alpha "&#x2807;"))
  (define-key braille-mode-map "m"  (braille-insert-alpha "&#x280d;"))
  (define-key braille-mode-map "n"  (braille-insert-alpha "&#x281d;"))
  (define-key braille-mode-map "o"  (braille-insert-alpha "&#x2815;"))
  (define-key braille-mode-map "p"  (braille-insert-alpha "&#x280f;"))
  (define-key braille-mode-map "q"  (braille-insert-alpha "&#x281f;"))
  (define-key braille-mode-map "r"  (braille-insert-alpha "&#x2817;"))
  (define-key braille-mode-map "s"  (braille-insert-alpha "&#x280e;"))
  (define-key braille-mode-map "t"  (braille-insert-alpha "&#x281e;"))
  (define-key braille-mode-map "u"  (braille-insert-alpha "&#x2825;"))
  (define-key braille-mode-map "v"  (braille-insert-alpha "&#x2827;"))
  (define-key braille-mode-map "w"  (braille-insert-alpha "&#x283a;"))
  (define-key braille-mode-map "x"  (braille-insert-alpha "&#x282d;"))
  (define-key braille-mode-map "y"  (braille-insert-alpha "&#x283d;"))
  (define-key braille-mode-map "z"  (braille-insert-alpha "&#x2835;"))

  (define-key braille-mode-map "A"  (braille-insert-ucase-alnum "&#x2801;"))
  (define-key braille-mode-map "B"  (braille-insert-ucase-alnum "&#x2803;"))
  (define-key braille-mode-map "C"  (braille-insert-ucase-alnum "&#x2809;"))
  (define-key braille-mode-map "D"  (braille-insert-ucase-alnum "&#x2819;"))
  (define-key braille-mode-map "E"  (braille-insert-ucase-alnum "&#x2811;"))
  (define-key braille-mode-map "F"  (braille-insert-ucase-alnum "&#x280b;"))
  (define-key braille-mode-map "G"  (braille-insert-ucase-alnum "&#x281b;"))
  (define-key braille-mode-map "H"  (braille-insert-ucase-alnum "&#x2813;"))
  (define-key braille-mode-map "I"  (braille-insert-ucase-alnum "&#x280a;"))
  (define-key braille-mode-map "J"  (braille-insert-ucase-alnum "&#x281a;"))

  (define-key braille-mode-map "K"  (braille-insert-ucase-alpha "&#x2805;"))
  (define-key braille-mode-map "L"  (braille-insert-ucase-alpha "&#x2807;"))
  (define-key braille-mode-map "M"  (braille-insert-ucase-alpha "&#x280d;"))
  (define-key braille-mode-map "N"  (braille-insert-ucase-alpha "&#x281d;"))
  (define-key braille-mode-map "O"  (braille-insert-ucase-alpha "&#x2815;"))
  (define-key braille-mode-map "P"  (braille-insert-ucase-alpha "&#x280f;"))
  (define-key braille-mode-map "Q"  (braille-insert-ucase-alpha "&#x281f;"))
  (define-key braille-mode-map "R"  (braille-insert-ucase-alpha "&#x2817;"))
  (define-key braille-mode-map "S"  (braille-insert-ucase-alpha "&#x280e;"))
  (define-key braille-mode-map "T"  (braille-insert-ucase-alpha "&#x281e;"))
  (define-key braille-mode-map "U"  (braille-insert-ucase-alpha "&#x2825;"))
  (define-key braille-mode-map "V"  (braille-insert-ucase-alpha "&#x2827;"))
  (define-key braille-mode-map "W"  (braille-insert-ucase-alpha "&#x283a;"))
  (define-key braille-mode-map "X"  (braille-insert-ucase-alpha "&#x282d;"))
  (define-key braille-mode-map "Y"  (braille-insert-ucase-alpha "&#x283d;"))
  (define-key braille-mode-map "Z"  (braille-insert-ucase-alpha "&#x2835;")))

(defun braille-mode ()
  "Major mode for writing braille for use in a browser."
  (interactive)
  (kill-all-local-variables)
  (make-local-variable 'braille-character-mode)
  (setq braille-character-mode 'braille-alpha)
  (setq mode-name "Braille")
  (setq major-mode 'braille-mode)
  (use-local-map braille-mode-map)
  (run-hooks 'braille-mode-hook))

(provide 'braille)
</pre>
