• Stars
    star
    125
  • Rank 285,329 (Top 6 %)
  • Language
    HTML
  • License
    MIT License
  • Created almost 14 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

International Phonetic Alphabet (IPA) Unicode Chart and Character Picker

International Phonetic Alphabet (IPA)

in Unicode and XHTML/CSS

Screenshot of the IPA Chart

(This is an old project that I moved from my site over to be fully hosted by GitHub, so I haven't updated the writeup below of much of the code in many years.)

The symbols defined in the International Phonetic Alphabet are used extensively in Phonetics and Phonology, and it is therefore essential that the symbols be easily accessible and displayed. Before Unicode, this was difficult: linguists were forced to create custom ASCII fonts (such as SIL IPA93), use ASCII glyphs themselves (eg. SAMPA), or drop using text and use images of IPA symbols instead (see Graphical IPA Keypad). For a 1999 snapshot of these problems, see Matthew Brooks. With Unicode, which is now widely used and supported by browsers such as Firefox, Internet Explorer, and Opera, IPA symbols can be displayed efficiently and semantically. To showcase the capabilities of Unicode, I replicated the chart created by the International Phonetic Association, which appears in most of the Phonetics and Phonology texts. The chart is written in fully compliant XHTML 1.1 and CSS2.

View the chart →

Additionally, I’ve also built an IPA “keyboard” off of the chart in order to facilitate copying the Unicode symbols and making transcriptions. It keeps track of recently used symbols and allows you to insert the symbols encoded in HTML entities. It works best in Firefox and Opera 9+, but also works in Internet Explorer 6 (but not in version 5).

View the “keyboard” →

Changelog

See old changelog for previous changes.

Todo List

  1. Add a look-alike search functionality. Type "a" into a search box and a æ ɑ ɒ will be highlighted (via Su W.)
  2. More information on hover over of character (via Shu W.)
    • Link to Wikipedia entry of character.
    • Link to play audio file (HTML5 Audio)
  3. Update to not use frames; just show the character buffer when URL fragment is present.
  4. Option to customize the chart, changing the default layout, adding additional characters not found on the official chart, or replacing some with your own, for example:
    • in the line of ieɛa an additional vowel between /i/ and /e/ (via Hermann F.)
    • in the line of uoɔɒ an additional vowel between /o/ and /ɔ/ (via ibid.)
    • in the line of yøœɶ an additional vowel between /ø/ and /œ/ (via ibid.)
    • raised 'm' symbol like the nasalised 'n', used in transcibing the word /amahlombe/ from Zulu, found in South Africa
    • putting the epiglottal consonants together up with the main consonants (via Percy W.)
    • the superscript equal sign to mark an unaspirated stop (eg. '40' = /'fɔr t⁼i/) (via James N.)
    • adding u025D ɝ
    • alternate voiceless diacritic for glyphs with descenders? e.g. U+030A (via Jason T.)
    • It would be nice if it were possible to insert a small raised schwa offglide for short US English vowels like [ʊ], which tend to be diphthongal, and a small raised [ɑ] for the American English [ɔ], which tends to have such an offglide. (via Karen C.)
  5. Ability to change default font
  6. Isolate text-directionality into another file... ltr.css and rtl.css
  7. Make other stylesheets for other media and media queries (e.g. mobile devices)
  8. Make an SVG vowel quadrilateral that is used by default and then falls back to the HTML table
  9. Consolidate stylesheet, taking out repetitious statements (eg. TH {font-weight})
  10. Position tables better to make the chart more compact.

Old Issues (may no longer be valid)

  • Mozilla cannot display the colgroup borders correctly in dir=rtl, see bug 89856
  • Opera does not have bidi support
  • MSIE cannot apply colgroup styles to the table
  • Note: Lucida Sans Unicode cannot display the tie bar and SILDoulosUnicodeIPA (correctly) requires the tiebar be placed in between the characters to be tied. Arial Unicode MS is the most widely supported and tied the previous two characters together. Lucida Sans Unicode cannot render an upper tiebar.
  • Lucida Sans Unicode chops lower diacritics in half.
  • SILDoulosUnicodeIPA does not support the nasal release diacritic.
  • The embed element is not defined by the W3C, but it is the only tag that Internet Explorer and Mozilla recognize.

Developed by Weston Ruter (@westonruter).

More Repositories

1

webforms2

Web Forms 2.0 Cross-Browser Implementation
JavaScript
237
star
2

html5-audio-read-along

HTML5 Audio Read-Along
JavaScript
191
star
3

syntax-highlighting-code-block

Extending the WordPress Code block with syntax highlighting rendered on the server, thus having faster frontend performance and being AMP-compatible.
PHP
118
star
4

esv-text-audio-aligner

ESV Text/Audio Aligner to programmatically obtain the timings for each word in the corresponding audio
JavaScript
88
star
5

spoken-word

Spoken Word
JavaScript
48
star
6

svg-tree-drawer

Drawing tree structures with SVG and JavaScript
JavaScript
34
star
7

json-xml-rpc

JSON/XML-RPC Client and Server Implementations
PHP
24
star
8

jquery-css-transitions

CSS Transitions via jQuery Animation
JavaScript
18
star
9

schemagraph

SchemaGraph: Visualizing Complex Databases
PHP
17
star
10

misc-cli-tools

Miscellaneous command-line tools to improve workflow
Python
14
star
11

css-gradients-via-canvas

CSS Gradients via Canvas
JavaScript
10
star
12

wp-manage

WordPress Manager Script
Perl
7
star
13

twentyseventeen-westonson

My child theme of Twenty Seventeen for testing.
PHP
4
star
14

djsango

Djsango: A Django-esque framework for client-side web applications
JavaScript
3
star
15

javascriptforwp-conference-amp-examples

HTML
2
star
16

raspberry-pi-cture-frame

Raspberry Pi-cture Frame
JavaScript
2
star
17

xhtml-document-write

XHTML document.write() Support
JavaScript
2
star
18

raspberry-pi-stuff

Python
2
star
19

amp-tablepress

AMP adapter plugin for the TablePress plugin for WordPress
PHP
2
star
20

wp-listenability

Listenability WordPress plugin
PHP
2
star
21

version.js

JavaScript object for representing and comparing version numbers (with major, minor, patch)
JavaScript
2
star
22

wp-script-loading-strategy-tests

Demo plugin that puts together various scenarios to test the script loading strategies proposed for WordPress core
PHP
1
star
23

rutersearch

One of my first programming projects (circa 1999)
1
star
24

amp-wp-theme-compat-analysis

HTML
1
star
25

benchmark-wp-html-tag-processor

HTML
1
star
26

westonruter.github.com

User pages
HTML
1
star
27

tweets.weston.ruter.net

Twitter archive for @westonruter
JavaScript
1
star
28

github-local-commit-log

Local viewer of commits in the current branch, filtering the log to commits containing certain file types, and other criteria, with permalinks back to GitHub for doing code reviews
PHP
1
star
29

taggame.js

The Game of Tag in Node.js
JavaScript
1
star
30

window-wrapper

Proof of concept for transparently wrapping a site in an iframe to allow for persistent elements on the page (e.g. chat)
JavaScript
1
star