3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grovefunction (Y) {
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // Only add keyboard support to autocomplete-list if this doesn't appear to
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // be an iOS or Android-based mobile device.
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // There's currently no feasible way to actually detect whether a device has
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // a hardware keyboard, so this sniff will have to do. It can easily be
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // overridden by manually loading the autocomplete-list-keys module.
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // Worth noting: even though iOS supports bluetooth keyboards, Mobile Safari
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // doesn't fire the keyboard events used by AutoCompleteList, so there's
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // no point loading the -keys module even when a bluetooth keyboard may be
3fdc538f1e3d65a00b9cd44e65ae854ec9c09963Ryan Grove // available.