Skip to content

Harvest Issue Review

John James Jacoby edited this page Oct 2, 2026 · 18 revisions

Harvest issue review

This is the JJJ/chosen fork's public review of the 260 issues open in Harvest Chosen on September 30, 2026. It records what the fork has fixed, already covers, is still investigating, or has chosen not to pursue. These are our assessments, not changes to Harvest's issue state. The review method and status definitions and machine-readable tracker are in the repository.

The first sweep was a desk review. A fixed-in-fork entry records a fork change; a covered-in-fork entry is an assessment of current behavior. Neither status means that every upstream reproduction has been retested on every browser. A candidate is worth investigating, not a promised feature.

Status Issues
Fixed in the fork 94
Already covered in the fork 75
Blocked by missing details or a test environment 16
Duplicate reports 14
Support and integration questions 38
Declined for this fork 18
Invalid or empty reports 5
Total 260

Fixed in the fork

Upstream issue Our assessment Fork PR
#79: Fetch From Remote Data Source A four-edition select-backed integration now uses an opt-in package API for bounded async pages, stale-response handling, and selected-value retention. Pre-populated select virtualization remains separate. #209, #216
#3146: Content Security Policy Strict-policy browser fixtures found one Chosen-generated inline width attribute. The fork removes it; all four editions now pass CSP checks in Chromium and WebKit when initialization runs from an allowed external script. The reported blocked inline application script needs an external file or policy-approved nonce. #211
#3143: Unable to preventDefault inside passive event listener invocation. Both adapters now skip preventDefault for explicitly noncancelable wheel events and retain it for cancelable events. #115
#3133: Use placeholder attribute on input elements for placeholder text (instead of value attribute) Multiple search inputs now expose placeholder text only through the standard placeholder attribute. —
#3129: How to disable the deselect on backspace button? The backspace_deletes_choices option disables keyboard removal without changing the existing single_backstroke_delete behavior. —
#3119: overlap drop down box if click outside browser window Open dropdowns close when the browser window loses focus, preventing another Chosen from opening alongside a stale dropdown. —
#3117: Enhanced Search / Custom Search Covered by the order-independent multi-term search option tracked with issue 3038. #136
#3115: repeated click will not show list Active multiple selects reopen on repeated mouse clicks in both adapters, complementing the existing real iPad WebKit retap coverage. —
#3108: Does not support empty options Blank options with nonempty values remain selectable; only options with empty text and values are placeholders. —
#3106: Problem with reselecting option after using back button in Chrome Both adapters now rebuild from restored native select values when browser history fires pageshow. —
#3091: Feature request - Alternative deselect An opt-in setting lets users deselect enabled multiple-select choices from the dropdown by Ctrl-click or Enter. #151
#3087: Add 'remove-choice' in the 'chosen-results' Opt-in selected result rows show a CSS remove mark and can remove individual enabled choices. #151
#3083: To copy select box "placeholder" attribute value into chosen "data-placeholder" A select placeholder attribute now supplies the default text when data-placeholder is absent, with both adapters covered. #116
#3075: Search does not work anymore without opened dropdown when using jQuery 3.4.1 Typing on a focused single select opens and filters it; verified with real keyboard input and both adapter specs. #162
#3073: Last option in select chosen is not taken! A removed option made a stale result crash selection; both adapters now refresh stale results. —
#3069: Limit number of selected items shown An opt-in display limit collapses extra selected choices with an expandable summary while keeping every underlying option selected. #157
#3059: Blocking the Esc key propagation, new even chosen:results and TipToolsText Open dropdowns consume Escape before it reaches ancestor controls, selected multiple choices retain option titles, and the existing chosen:search_updated event reports result refreshes. #138
#3053: There should be an easy way to customize the colors with SASS The shipped Sass palette variables use !default, so integrations can override colors before compiling while retaining the existing defaults. #150
#3046: Custom regex An opt-in search_matcher callback replaces built-in matching for parsed options and groups; integrations can use their own regular expression or function. #155
#3039: iPad: Cannot close/remove li.search-choice (click.chosen event never fires) Nested click fixed in #95; WebKit touch coverage and the remaining touch fix added here. #95
#3038: Searching with matching words instead of phrases The opt-in split_search_terms setting requires every whitespace-separated term to match in any order and highlights every match. #136
#3035: Chosen Multiple dropdown visible when all items are selected and display_selected_options=false The empty multi-select results drop is hidden without changing open-state events or search behavior. —
#3034: Incorrect default width from JS, chosen-container width = 0px A source select with zero measurable width gives its Chosen container auto width instead of an inline 0px width; both adapters have regressions. —
#3025: Display the value rather than the text label as selected The opt-in display_selected_value setting shows escaped option values in closed single controls and selected multiple choices while retaining labels in the dropdown. #139
#3022: Input field stays in focus on mobile devices after you close Single-select result selection now blurs the hidden search input and returns focus to the visible control, dismissing the mobile keyboard in both adapters. #119
#3018: Delay before search - performance issue The opt-in search_delay setting debounces input for large lists while keyboard actions flush pending results before navigation or selection. #134
#3002: Inputs are showing autofills/autocompletes The opt-in search_input_type setting renders search inputs in both adapters while preserving text inputs by default; browser autofill behavior remains browser-dependent. #153
#2995: Search term that's different from result Covered by the per-option data-search-text support tracked with issue 2928. #140
#2983: No search was triggered in safari when using Chinese input method. Covered by the input-event search fallback tracked with issue 2663. #131
#2973: Support to readonly (like disabled) The readonly attribute makes Chosen non-editable without disabling the source select, so its selected value remains enabled for form submission. —
#2963: How to let a value visible everytime (feature?) An opt-in data-chosen-always-visible attribute keeps a native option such as Other available during unmatched searches in both adapters, without adding it to Select all when it does not match. #171
#2961: How to show results only once user enter character The opt-in min_search_length setting keeps result rows hidden until the trimmed search text reaches the configured length. #137
#2959: Include chosen sprite source to project files Editable source SVGs for the four existing control icons ship in sass/icons and dist/scss/icons; the build embeds them into the same Sass/CSS defaults, with no extra image requests or visual change. #172
#2957: Search after no_result exception Both adapters recover after an empty search is cleared and select an existing option without stale-index errors; direct regressions cover the reported sequence. —
#2948: disable_search option breaks conventional 'highlight option as you type' behavior When disable_search is enabled, printable keys now build a short prefix and highlight the first available matching result in both adapters. #133
#2931: jQuery Migrate triggers deprecation warnings when using this plugin Native input focus after jQuery result selection avoids the deprecated .focus() shorthand; all supported jQuery adapter versions have regression coverage. #165
#2930: Selected option not shown in dropdown when max_shown_results is set An empty-search max_shown_results window now shifts to include the selected single option without exceeding the configured result limit. #128
#2928: Feature request: search synonyms imbedded in option. Options can provide synonyms and aliases through data-search-text; matches keep the visible option label unchanged. #140
#2925: Maintain multi select scroll position with hide_results_on_select = false Stay-open multiple selects preserve their results scroll position and highlight the next nearby option without changing active-search behavior. #117
#2913: Issue when tabbing too quickly between consecutive multiple selects. Delayed multiple-select activation now verifies that its search input still owns focus, preventing rapid Tab navigation from reopening earlier controls. #121
#2908: Chinese typing filter fail Covered by the composition-aware input search fix tracked with issue 2663. #131
#2889: chosen:update is cleaning search input Active queries now survive chosen:updated in both adapters; browser regressions added. —
#2884: Chosen-select not changing size of dropdown after filling Opt-in recalculate_width_on_update measures the native select again after option updates and resizes the control; explicit width and existing default sizing remain unchanged. #169
#2870: When option matches placeholder, .chosen-default should not be added A selected option whose label matches the placeholder text now remains selected styling instead of receiving the chosen-default class. #127
#2862: enable_split_word_search doesn't do anything if search_contains is true The combined search_contains and enable_split_word_search: false settings now anchor at the option start while permitting punctuation-prefixed queries; the default search behavior is unchanged. #170
#2845: Suggestion: ability to paste multiple items in edit box, separated by coma/semicolon in multiple selection box Opt-in paste_multiple_values selects unique existing enabled options by exact value or case-insensitive label, leaves unmatched and over-limit entries in the search field, and preserves native select events in both adapters. #173
#2789: How to manage required field when used required="required" Native form reset refreshes selected text and chips in the classic adapters. Required-field message placement is now covered by #3084 and PR #206. #162, #206
#2788: Way to prioritize prefix matches with the search_contains option Opt-in highlight_prefix_matches prefers the first rendered, selectable label-prefix match during search_contains, so Enter chooses Angular before earlier infix matches while the result list and native select retain their order. #174
#2787: Clicking already selected value(disabled value) in Multi Select loses focus and hangs. Inert result presses retain Chosen search focus; verified with pointer input and both adapter specs. #162
#2776: Improve the jQuery interface The jQuery adapter exposes Constructor and AbstractConstructor and provides noConflict() to restore a previously registered chosen plugin without changing existing plugin calls or defaults. #175
#2771: Autoscroll when mouseover must be disabled, but when use keyboard keys "up" and "down" must be work Pointer hover highlights a partly visible result without scrolling, while keyboard highlight still scrolls it into view; both adapters have regression specs and browser pointer checks. #166
#2757: Touch Event in multi-select control doesn't open the dropdown list after choosing an item without going out of focus and back in again. Reproduced jQuery's active-field retap failure in iPad WebKit and added a touch regression. —
#2751: Unsafe injecting Option labels render from escaped native text, and configurable no-results/create-option labels are escaped. Static internal templates still use HTML APIs; browser add-on certification was not assessed. #176
#2689: Activated Chosen instance can't be programmatically opened chosen:open now opens an already activated single select; both adapters have regression specs. #162
#2663: Bad IME support Search listens for completed input values, waits for IME composition to end, and does not treat composition confirmation as option selection. #131
#2659: Issue with linked label text selection Dragging across associated label text now preserves selection without focusing Chosen; both adapters have regression specs and a real browser pointer check. #163
#2658: Combobox not accessible with Voice Over (MacOS) The fork exposes one named combobox at a time, hides inactive dropdown semantics, keeps option state current, and restores the closed control focus on Escape. #129
#2622: Mouse wheel scrolling jerky in FireFox Modern browsers use native standard wheel scrolling; manual mousewheel and DOMMouseScroll handling remains only as a legacy fallback. #118
#2575: Allow a way to not have the width attribute set inline on the chosen element The opt-in width: false setting leaves the generated container without an inline width, allowing CSS to size it in both adapters; explicit and default widths retain their prior behavior. #181
#2571: There's a "infinite scroll" when holding the cursor on a 1px line at the bottom of the select Hovering the bottom edge no longer scrolls the results list at all; a stationary pointer remained at scrollTop 0 in both adapters after the #2771 fix. #166
#2563: Allow Deselect on Single Selects using keyboard (esc key?) Single selects with allow_single_deselect can now be cleared from the focused control with Backspace or Delete in both adapters. #122
#2499: Set default initialization options Both adapters accept explicit shared initialization defaults for future instances, with per-control options taking precedence and existing instances retaining their options. #182
#2438: Add mobile support based on a full screen layout Opt-in mobile_fullscreen (mobileFullscreen in React) fills the visible viewport on narrow touch screens, follows the keyboard, and offers Close across all four editions. The anchored dropdown remains the default. #198
#2430: Tab should populate with currently displayed option The opt-in multiselect_allow_tab_to_select setting accepts a highlighted multiple-select result with Tab while preserving the existing default. #135
#2336: single select triggered event "change" does not pass deselected jQuery single-select input and change events now report the replaced value as deselected when switching or clearing; native select values and Prototype events remain unchanged. —
#2311: Update trigger should update title attribute from original select The chosen:updated event now mirrors changes to the source select title onto the visible Chosen container, including title removal. #124
#2232: chosen: updated does not pick up css-class. When inherit_select_classes is enabled, chosen:updated now replaces inherited source classes while preserving Chosen's own live state classes. #126
#2215: UMD The jQuery distribution registers with AMD, exports its plugin through CommonJS, and retains browser-global loading; Prototype remains a browser-global adapter. —
#2156: Clicking on bottom border of select opens the select, selects first element and closes. A real bottom-edge click no longer opens and immediately closes the Prototype dropdown; the jQuery adapter already behaved correctly. The native select value stays unchanged. #164
#1912: Add support for Page Up, Page Down, Home and End Home, End, Page Up, and Page Down navigate available results in both adapters while preserving caret movement in nonempty search input. #132
#1870: Feature: Allow Options as HTML5 data Attributes Both adapters read documented scalar options from per-select data attributes with strict typed parsing; explicit JavaScript options still win. —
#1835: allow_single_deselect is not working if empty option is added after initialization The chosen:updated event now recalculates single-deselect eligibility when a true empty first option is added or removed dynamically. #125
#1829: Generate example pages from single template Both demo pages are generated byte-for-byte from one source template with adapter-specific regions and a build consistency check. —
#1738: Section in docs about styling Chosen The options page now explains how to override Chosen styles and maps the main control, result, and state selectors. #142
#1582: Please expose AbstractChosen.browser_is_supported() Both adapters now expose browser_is_supported before initialization. —
#1526: Chosen stealing focus. Result selection no longer refocuses Chosen after a change handler moves focus to another field. #119
#1451: Chosen outline color on focus doesn't match browser default Focused single and multiple controls use the browser's native outline, with Sass variables for customization. —
#1380: [in progress] Make version that doesn't rely on JS library The dependency-free vanilla adapter enhances the native select while keeping form values and events authoritative; React and vanilla demo pages now show the classic feature sections. #189
#1076: Specifying empty placeholder text An explicitly empty data, native, or configured placeholder now remains empty; both adapters have regression specs. #162
#1011: Callback functions for no_results and no_results_clear No-results show and clear lifecycle notifications now expose the active query and message node across adapters. #190
#1001: Add optional Select All / Deselect All to the UI for multi-select lists Opt-in Select all and Deselect all actions support filtered results, disabled options, selection limits, keyboard use, and custom text in both adapters. #148
#994: More shortcut keys to allow for keyboard only selection deselection Classic already supported the three shortcuts; Vanilla and React now match the applicable single-select keyboard behavior. #191
#949: Prevent option selection on right click. Secondary-button result presses were already ignored in classic Chosen. A secondary-button press no longer opens a closed control in any of the four editions. #201
#943: More flexible no_results_text Opt-in no_results_template places an escaped search term at {search} across all four editions. #192
#652: Chosen does not work with autofocus attribute Initializing Chosen on a focused select transfers focus to the generated control without opening the dropdown, preserving native autofocus behavior. #120
#572: Request: Option to style multiple-select items by optgroup Opt-in inherit_optgroup_classes copies source optgroup classes to selected multiple-choice chips across all four editions. #193
#536: support chars with accents Accent-insensitive matching and highlighting are covered in both adapters, with normalize_search_text available for custom normalization. —
#515: html5 required attribute support? Required selects remain the native validation source. When invalid, the select temporarily aligns with the visible control so the browser message appears beside it, then restores its styles after a valid choice, form reset, or teardown. #206
#406: Dropdown width should be separate from select control width The opt-in dropdown_width setting sizes the result dropdown independently from the control and accepts fixed or intrinsic CSS widths. #141
#264: Accessibility issues with Chosen The fork exposes current combobox, listbox, option, expansion, and selection state and announces localized result counts during search. #130
#171: +text to multiple select box Opt-in placeholder_text_multiple_selected shows an add-more hint after a multiple selection across all four editions without altering native values. #194
#135: Multiselect with shift key Opt-in Shift-click adds the visible multiple-select range across all four editions, skipping disabled options and respecting the selection limit. #195
#92: if select is initially hidden, doesn't work A hidden select with explicit CSS width now retains that width when shown; verified in Chrome and both adapters. #162
#86: Chosen gets "cut" when placed in area with "overflow:hidden". Opt-in dropdown_position: fixed keeps results visible beyond an overflow:hidden ancestor and aligned during page or nested scrolling and resize in both adapters. Transformed or paint-contained ancestors remain a documented limit. #168

Already covered in the fork

Upstream issue Our assessment Fork PR
#3155: How to Turn the found character into bold instead of underline in chosen-jquery The options guide documents the CSS override for bold search matches, and Sass variables expose the highlight style without changing defaults. —
#3154: NPM not in sync The maintained fork publishes current releases as chosen-jjj; it cannot backfill releases under Harvest's npm package. —
#3152: Max selection doesn't work Dynamic options respected max_selected_options: 3 and fired chosen:maxselected for a fourth choice. —
#3144: Menu get truncated if the dropdown at the end of the page Dropup positioning and scroll regression tests already exist. —
#3139: Android Chrome - no search bar / placeholder The fork initializes Chosen on mobile user agents and covers touch opening, selection, removal, and retapping. —
#3137: Broken focus after upgrading to jQuery 3.6.0 Opening results focuses the search input across the maintained jQuery matrix, including jQuery 4. —
#3128: Feature Request: undelateable Selected disabled options render without removal controls and backspace skips them in both adapters. —
#3116: chosen update not working after ajax response Appending options and firing chosen:updated is covered in both adapters, including preserving an active search. —
#3102: Feature request: Callback or event on no results Both adapters already fire chosen:no_results with the Chosen instance when a search has no matches. —
#3100: Seleccion Multiple Multiple selects already expose a searchable input. —
#3097: Feature request - Custom attributes The fork copies accessible names and descriptions, preserves titles, and supports copying option data attributes through parser_config. —
#3092: Feature Request - keypress event (or keydown) to allow dynamically updating list by Ajax Both adapters emit chosen:search_updated with the search term, allowing AJAX-backed native option updates. —
#3090: When chosen select value removed programatically, it selects first option on Tab key Clearing a single select with chosen:updated and pressing Tab kept its value empty in Chrome. —
#3084: Need a alert in case of Required=true A required native select blocks form submission and shows the browser validation message beside the visible control across all four editions. Application-specific error styling remains a separate choice. #206
#3062: querySelectorAll('.search-choice') returns deselected search choice After deselection, the option is unselected and querySelectorAll finds no search-choice node. —
#3057: select move last option The current fork with jQuery 1.12.4 retained native option order. —
#3052: Add new item without closing dropdown A browser probe added a native option and triggered chosen:updated while the dropdown was open; both adapters kept it open, rendered the new option, and retained search focus. —
#3037: Enhance AbstractChosen.prototype.search_string_match for self define filter logic Opt-in search_matcher callback provides custom result filtering (#155). —
#3031: Dropdown is closing immediately when used inside Shadow DOM A select inside an open Shadow DOM kept its dropdown open after clicking in Chrome. —
#3021: chosen fails when regenerating <select> contents Replacing options in the same select and triggering chosen:updated works repeatedly; replacing the select node requires initializing Chosen on the new node. —
#3017: chosen inside a disabled fieldset Both adapters treat selects inside disabled fieldsets as disabled and refresh that state on chosen:updated. —
#2999: Uncaught TypeError: this.form_field_label is not a function - can't search and select options Current label handling uses an element reference and never calls form_field_label as a function. —
#2994: Scroll forced reset when clicked on chosen select(without search), placed inside scrolling container. A real pointer click on a search-disabled Chosen inside a horizontally scrolled container preserved scrollLeft in both adapters. —
#2993: deselect on single selects updates display but not underlying option's selected state Single deselection clears the option's selected property and submitted value; the original selected HTML attribute remains as markup. —
#2987: a bug with sample html Twenty repeated chosen:updated calls rendered all 21 native options in current jQuery and Prototype browser fixtures. —
#2977: [Security] Known Security Vulnerabilities in hoek < 4.2.1 The old vulnerable hoek development dependency is absent from the current package and lockfile. —
#2958: Multiple select dropdowns stays opened Opening a second spaced select closes the first dropdown in Chrome. —
#2955: "wheel" event propagates in Firefox Wheel propagation and delta handling were corrected in #115 and #118. —
#2941: [Suggestion] Drop support for bower This fork publishes through npm and no longer maintains the separate Bower package workflow. —
#2937: Feature request / bug fix / general assistance The opt-in inherit_select_classes setting copies source-select classes to the Chosen container on initialization and chosen:updated, with both adapter specs; integrations changing classes can trigger chosen:updated. —
#2929: Change event not fired if there is only one result Selecting a filtered single result emitted one native change event in current browser fixtures for both adapters. —
#2891: Documentation: What need be added where? The fork README lists the distributed jQuery, Prototype, and CSS files and includes npm and Composer installation commands. —
#2852: Width doesn't adapt to font size The opt-in dropdown_width: max-content expanded a 24px-font menu for the longest option in current browser fixtures for both adapters. —
#2832: Key press should have a callback Both adapters emit chosen:search_updated on text changes; bind to that event for application callbacks. —
#2829: Scroll to the first element after select Stay-open multiple-select scroll position is preserved on selection (#117). —
#2826: data-placeholder preservation with all/none feature After Select all and individual removals, both adapters restored the data-placeholder and default input state. —
#2823: Wheel Scrolling is to slow in FireFox in conjunction with jquery-mousewheel plugin Wheel handling now uses native delta behavior rather than the old jquery-mousewheel path (#115 and #118). —
#2814: Removing the focus by not allowing multi-field typing Clicking the multiple-select control focused its search field in a current browser fixture. —
#2807: Include scss files in npm module The package exports and ships Sass sources. —
#2799: Performance in case of multiple chosen dropdowns Current Chrome fixture initialized 100 selects with 5 options in 36ms (jQuery) and 45ms (Prototype), and 700 selects with 22 options in 794ms and 1049ms respectively. This does not guarantee the same result on every integration or device. —
#2790: Focus events for chosen do not fire (even on chosen <a/> element) The current single-select control emitted focus in a browser fixture. —
#2782: multiselect feature Opt-in displayed-choice limit with expandable summary is implemented (#157). —
#2755: Chosen not showing 1000 or more records A current browser fixture with 1,200 native options rendered 1,200 result rows. —
#2752: Missing Documentation: group_search option group_search is documented on the Options/API page. —
#2657: Auto-publish GitHub site from package script. GitHub Pages already auto-publishes master/docs after merges; the latest build tracked merged master. CI and release checks now reject stale generated dist/docs assets, and the release guide requires the release commit on master. #177
#2651: Should not be using pixel values and images The fork ships editable SVG icons and scoped CSS/Sass size variables, including opt-in relative icon sizing. Pixel defaults remain for visual compatibility; jQuery and Prototype demos show a rem-based recipe. #178
#2638: Triggering "chosen:updated" removes placeholder chosen:updated preserved the configured placeholder in current jQuery and Prototype browser fixtures. —
#2613: Multi select with Chosen enabled in label deletes letters Typing in the current control wrapped by a label retained the search text in a browser fixture. —
#2611: Apply original option classes to Chosen's search choice. inherit_option_classes copies native option classes to selected chips. —
#2580: UI hangs on really large lists Current Chrome 20,000-option fixture with max_shown_results: 50 initialized in about 75ms, opened in 20ms, and filtered in 68ms (jQuery) or 270ms (Prototype). Opt-in search_delay is available. Larger sets and other devices may still warrant profiling. —
#2548: 'search_contains' breaks search while escaping strings Current jQuery and Prototype search fixtures matched ampersands and apostrophes correctly. —
#2507: How to show the option value instead of text once the item selected in chosen? Opt-in display_selected_value shows option values in closed controls and selected chips. —
#2467: Issue dismissing options when clicking outside of a browser window After blur and an outside click, the current dropdown stayed closed in a browser fixture. —
#2454: Autocomplete=off not respected by Chrome 45 Generated search inputs now default to type=search, with text opt-in (#154). —
#2397: Show results when filtering by optgroup name and option name The search_matcher callback can match combined group and option labels (#155). —
#2372: Trigger event when search results are updated Both adapters fire chosen:search_updated after replacing filtered result markup, with the Chosen instance and search term. —
#2366: Duplicated Dropdowns Both adapters close an open dropdown on window blur before another Chosen control opens. —
#2295: Placeholder for initially-hidden multiple select is cut off at 90px A browser probe initialized a hidden multiple select with a 300px width and confirmed the search input stayed within the control before and after showing it, in both adapters. —
#2245: dropdown is opening for every keypress F2 did not open Chosen in a real keyboard check against the current fork. —
#2230: Touch event passing a click through list option The fork has WebKit touch click-through regression coverage and fixes (#95). —
#2107: Search stops working after it encounters first   The current default search found terms before and after repeated nonbreaking spaces in both adapters. —
#1989: FR: Control sizing (like Bootstrap) CSS custom properties and scoped styles support application-specific control sizing; no Bootstrap dependency is needed. —
#1938: Option to disable search in optgroups group_search: false excludes optgroup labels from matching while preserving option matching. —
#1797: Empty Style Tags, Long Property and Class Names and IE11 Performance Current result markup did not emit the reported empty style attribute in either adapter. —
#1528: Chosen incorrectly calculates width of small selects The opt-in dropdown_width: max-content expanded a narrow select's result menu to its longest label in both adapters without changing the control width. —
#1480: Isolated scrolling annoying when chosen drop down crosses fold The dropdown can open upward when space below is insufficient. —
#1473: Expand "Setup" section Setup and package instructions were expanded in the fork demo and wiki. —
#1370: Dead lock when holding "TAB" Repeated Tab navigation passed through current Chosen controls and adjacent fields without deadlock. —
#858: "Fuzzy" word search The opt-in split_search_terms setting matches partial words in any order; search_contains can also match within a word. Both adapters have multi-term highlighting specs. —
#800: Search by text and value search_in_values opts into matching native option values. —
#677: Search for multiple words The opt-in split_search_terms setting matches all query terms in any order and highlights each match in both adapters; regression specs cover reversed-term searches. —
#495: Do not use <abbr> tag The clear control no longer uses an abbr element. —
#323: Make the optgroup labels clickable The select-by-group attribute makes multiple-select optgroup labels selectable. —
#155: Dropdown at the bottom of the page breaks layout The fork positions the dropdown upward when needed and keeps closed dropdowns from affecting page layout. —
#5: Req: Including non-specified values Opt-in create_option appends a new native option, preserving the select as the submitted-value source. —

Blocked by missing details or a test environment

Upstream issue Our assessment Fork PR
#3159: Stopped working on mobile devices. Mobile failure report has no reproduction steps or browser details. —
#3151: multiple dropdown does not work in H5 In current iPhone 13 WebKit emulation, the multiple select rendered before and after reload, opened, and submitted a choice. The report's “H5” environment and failing select fixture remain unspecified, so a device-specific failure cannot be assessed. —
#3135: Chrome Update 105.0.5195.102 seems to have broken chosen The Chrome 105 report omits code or steps for the claimed native/Chosen desync; current adapter tests cover value synchronization. —
#3099: Drop down size Third-party intranet screenshot only; no runnable case, version, or accessible reproduction. —
#3055: Icons don't work correctly Old icon screenshot URL and no current asset path or runnable case; cannot identify a fork defect. —
#3041: v.1.8.7 - border of other chosen list is appearing if we make any chosen dropdown disabled. I am using IE 11 browser. IE11-only visual report; no supported IE11 test environment. —
#3019: Dropdown issue in IE IE9/IE11 closed-dropdown hit-area defect; a supported browser reproduction or IE test environment is needed. —
#3009: Incorrect selection when out of focus and then back in focus IE11-only incorrect-selection report; no supported IE11 test environment. —
#2976: Z-index issue chosen External page and screenshot are unavailable; no code or reproduction supplied. —
#2932: chosen-sprite.png doesn't display Chrome device emulation reload changes the mobile fallback, but no actual device, missing-asset URL, or current-version reproduction is supplied. —
#2874: Chosen dropdown navigation issue with JAWS tool. The report is specific to IE 11 and JAWS 18; neither environment is in the maintained browser matrix. —
#2836: Chosen dropdown not displaying properly in Internet Explorer Old Internet Explorer screenshot without a current supported-browser reproduction. —
#2778: new functionality External examples do not specify the requested behavior or working reproduction. —
#2740: Chosen choises a incorrect item on IE Internet Explorer-only selection report; no supported IE test environment. —
#1386: Unintentional option selection when using a (Wacom) tablet as input device. Wacom pen/modifier gesture requires that hardware or a reproducible synthetic pointer sequence. —
#625: Incorrect focusing in FireFox The 2012 Firefox-only double-Tab report needs a current Firefox reproduction. Playwright Firefox downloaded but exited before loading its profile in this local environment; Chrome results cannot settle it. —

Duplicate reports

Upstream issue Our assessment Fork PR
#3121: Drop down menu issue Same closed-dropdown hit-area behavior as #3019; investigate under that report. —
#3080: Chosen inside a scrollable div causes div displaying scrollbar instead of overlaying content Scrollable ancestor clips or scrolls the dropdown; same underlying overflow issue as #86. —
#3008: select is set to manditory Required-select validation and message placement are covered by the better-described #3084. #206
#2947: chosen select inside table of table-responsive class Responsive table clips the dropdown; same CSS overflow problem as #86. —
#2895: Allowing user to keep custom text if value not found from dropdown lists Custom values absent from the select are the request in #5. —
#2893: multiselect add no wrapping Single-row selected chips request is also tracked in #918. —
#2824: Append more options it's rebuilding the full list and loosing focus when the list is opened Updating options while preserving an open dropdown is tracked in #3052. —
#2775: Heigh of Chosen box is growing Single-row selected-chip layout is tracked in #918. —
#2767: Problem selecting the last option if this is not completely visible in the list Mouse hover scroll shifts the partially visible last result; tracked in #2571. —
#2765: validation popup not connected to chosen field The native required-field message now appears beside the visible Chosen control; see #3084. #206
#2753: Support for copy and paste. - Feature Request Paste a delimited list of known values is tracked in #2845. —
#2609: Multiselect initial width is not calculated correctly Hidden or narrow multiple-select placeholder sizing is tracked in #2295. —
#2300: Search order and search weight Prioritize prefix/exact matches in search is tracked in #2788. —
#2114: Cropped Placeholder (related to #1352) Cropped placeholder after initialization in a hidden container is tracked in #2295. —

Support and integration questions

Upstream issue Our assessment Fork PR
#3149: Null Option is being showed as $nbsp; Current Chromium fixtures in jQuery and Prototype treat nonbreaking and en spaces identically, preserving the native option value. Use <option value=""></option> for a blank placeholder. The report omitted the generated markup, so no Chosen-specific difference was reproduced. #212
#3140: HTML in options Nested HTML inside native option elements is outside the native select text contract; use text or application markup outside Chosen. —
#3131: JQuery Chosen Drop Down - Overlaps Reported overlap uses application z-index and old .chzn-container styling; no isolated Chosen defect. —
#3130: [BUG] Doesn't work in WordPress! How to make it work? Chosen is a JavaScript plugin, not a WordPress plugin; the report asks for WordPress setup help. —
#3126: asp.net mvc drop down list multiple option ASP.NET must render selected option state into the native select before Chosen initializes. —
#3124: Set height Control height is an application CSS customization question. —
#3118: Any successor or alternatives? Asks for successor recommendations; a commenter already links this fork. —
#3110: How to get the selected options values in Laravel? Laravel form values come from the native multiple select; answered in the discussion. —
#3109: I made the youtube tutorial but it is not work Initialization help for a third-party tutorial without a reproducible Chosen defect. —
#3104: I am getting required result but i am getting and an exception in my console and which is i am given below The shown React handler passes non-event values to jQuery.trigger; integration code causes the exception. —
#3103: Get selected items count Read selected options or values from the native select; count and validation are application logic. —
#3095: Hi, i m using chosen multi select plugin in my project. it is working fine with adding new records in database table. but i m struggling with retrieving the records while i do edit. In my database table multi select values inserting with comma separator(eg: 2,3,4,). help assist me sort this issue Database serialization and edit-form hydration belong to the application; no Chosen defect stated. —
#3093: How to stopPropagation on click open select chosen ? Event propagation in the surrounding application container is an integration question. —
#3088: How to change chosen textbox background color Textbox background color is an application CSS customization. —
#3086: bootstrap 4 Bootstrap 4 integration request has no isolated Chosen defect or design contract. —
#3081: filter <optgroup> using jquery Filter native optgroups/options in application code, then trigger chosen:updated. —
#3077: How not to show Drop down on focus Asks how to avoid opening on focus; use the documented focus/label behavior setting. —
#3070: Cannot find module './chosen-sprite.png' Rails asset-pipeline packaging of chosen-js is separate from the fork package; upstream discussion explains asset location. —
#3065: Strange Chosen-Select Behavior The attached @ keypress handler opens Chosen from a contenteditable element. Chromium and WebKit insert that key into Chosen's newly focused search input unless the application cancels the shortcut's default action. #214
#3043: Chosen All Option An application-specific All sentinel option needs application selection logic; separate opt-in Select all action exists. —
#3042: Chosen css clash causing options to become unselectable Absolutely positioned SharePoint/Nintex panels cover the dropdown; application stacking context needs adjustment. —
#3016: set value not trigger change event Programmatic value changes do not automatically emit change; explicitly trigger change after chosen:updated. —
#2981: jQuery chosen plugin not working after ajax submit. Replacing native options, setting the value, and triggering chosen:updated twice worked in jQuery and Prototype under Chromium and WebKit. The report does not supply its AJAX sequence; application code should update the existing select before firing the event, or destroy Chosen on the old select before replacing it and initializing the new one. #215
#2979: Running into issues capturing enter key, running my function, then opening chosen select afterwards Custom Enter-driven form workflow; no Chosen defect or general API gap isolated. —
#2969: Chosen-js - ANGULAR 5 General Angular 5 integration question. —
#2871: angularjs ng-change event is not triggered in IE10, same code works fine on Chrome AngularJS ng-change with IE10 and an unspecified chosen directive is integration-specific. —
#2868: Integrate chosen in tinymce linklist TinyMCE link-list integration is a third-party application question. —
#2849: Emptying ng-model does not empty UI selections Angular model updates need its directive to update the native select and notify Chosen. —
#2847: Choosen in bootstrap 3 Bootstrap .section layout conflict without an isolated Chosen case. —
#2830: does not work using *ngFor in Angular2 Angular ngFor renders asynchronously; initialize or update Chosen after options exist. —
#2828: enter event Application asks how to handle Enter and read selected values; native select change is available. —
#2786: how to differentiate option groups by color Coloring groups and options is an application CSS customization. —
#2783: Cyrillic support? UTF-8 Cyrillic options rendered and searched correctly in current Chromium and WebKit with jQuery and Prototype. Replacement characters should be traced in the native option text and page or response encoding; the report omitted its source markup. #213
#2731: .trigger("chosen:updated") does not right to selected the option that i give AJAX code mutates linked selects; supplied discussion resolves it with native selection and chosen:updated. —
#2706: The width of the container is a bit small. The report only shows a manual 5px width increase, without a clipping fixture. Use Chosen's width or dropdown_width option for a specific layout. —
#2125: How to use Default Text Support with valid HTML? An empty first option with an empty value and whitespace-only label remains a placeholder. Regression coverage accompanies label-only option support. #200
#1428: Inheriting events from original element? Native blur events on the hidden select are not forwarded; use Chosen lifecycle events on the select. —
#918: Multi Select Box Style Issue - Show Options in one line Single-row selected-chip presentation is a CSS/layout choice; the fork also offers an opt-in displayed-choice limit. —

Declined for this fork

Upstream issue Our assessment Fork PR
#3061: Behaviour with duplicate options Treating separate native option elements with equal values as one selection would change select semantics. —
#3045: Retinafy Github/Harvest badges on the public site Retina asset for the old Harvest badge is obsolete for this fork site. —
#3040: The chosen v1.8.7 release zip file is just the source code, not the compiled javascript code This concerns the historical Harvest 1.8.7 source archive, not the fork package or release process. —
#2956: Two Values in only Chosen Two linked category/product values in one select are application data and form logic. —
#2934: Reposition search-choice Moving selected chips outside the control changes established markup for a layout preference; use scoped CSS or a separate component. —
#2933: Embed and test css for bootstrap3 Bundling Bootstrap 3-specific appearance rules would couple the default stylesheet to an obsolete framework. —
#2855: Provide Checkbox for selecting multiple items in one event Checkboxes inside option rows add a second control model and conflict with the existing combobox/listbox interaction. —
#2794: Additional browser_is_supported checks for uncaught mobile devices The maintained fork intentionally supports touch controls on mobile rather than blocking broad device user agents. Current iPad WebKit selection, removal, search, and retap tests pass in both adapters. —
#2793: problem with multi-column div in Chrome Reported Chrome multi-column absolute-positioning behavior was referred to the browser by upstream maintainers. —
#2724: Input line-height is not correct in IE8 IE8-specific line-height change is outside this fork’s supported browser matrix. —
#2685: Autoselect first value Selecting an uncommitted first search result on blur risks changing submitted values unexpectedly. —
#2665: Is it possible to remove a lot of selection keeping backspace pressed? Repeated Backspace deletion risks removing multiple choices accidentally; single_backstroke_delete covers deliberate one-key removal. —
#2212: Chosen removes ALL empty options Extra blank option rows are indistinguishable and conflict with Chosen’s placeholder convention; preserve native select values. —
#1833: Nested Elements in CSS Sass nesting already compiles to ordinary selectors; replacing structural selectors with new classes would change generated markup and styling contracts without demonstrated performance benefit. —
#1611: Change mark up structure for group-result (optgroup) for flexibility Group markup restructuring would break existing selectors for a presentation preference. —
#1577: Exclude search input field when disable_search is false The search input also owns keyboard focus when search is disabled; removing it breaks interaction. —
#841: Multiple select options cannot be selected by using TAB key Tab must move focus according to keyboard conventions, not select a result. —
#381: Add Webkit-style Select Scrolling WebKit-specific hover scroll arrows are obsolete and add nonstandard interaction to the dropdown. —

Invalid or empty reports

Upstream issue Our assessment Fork PR
#3156: Buy Like Off-topic promotional HTML; no Chosen question or defect. —
#3150: Thank you Thank-you note with no requested change. —
#3148: Unable to Edit or Modify a Copied Page Element in the Plugin Unfilled issue template; no actual reproduction or behavior described. —
#3058: placeholder Unfilled issue template; no placeholder problem described. —
#2777: Keyboard Tab down and up until the end of twitch. No intelligible Chosen behavior or reproduction after clarification request. —

Harvest pull request follow-up

At the start of this sweep, the original repository had 49 open pull requests. Their review tracker records linked issues and our current disposition. Of those, 27 had no explicit issue reference in their title or description, so they needed their own review alongside the issue list. All 49 now have an initial disposition: 36 already covered, 5 fixed here, and 8 declined. No pull request from that initial list remains under investigation.

Upstream PR Our assessment Fork PR
#3112: support options with labels only Fixed: jQuery, Prototype, and Vanilla now show and search a label-only option while retaining its native value. React already accepts a structured label field. A follow-up preserves whitespace-only placeholders. #199, #200
#2938: Resolve 1901 issue Declined: the patch changes when single deselection is offered, while its linked issue #1901 concerns how a placeholder looks on mobile. This fork supports touch controls and keeps a truly blank first option as the clear target. —
#2904: Use the placeholder attribute instead of faking it with value Already covered: both classic adapters use the search input's native placeholder attribute. —
#2903: Support hidden property on option and optgroup elements Already covered: hidden options and groups are omitted from results, and hidden options cannot be selected through Chosen. —
#2846: Multiple values pasting feature Already covered through an opt-in setting across all four editions. Paste accepts comma, semicolon, and tab separators and selects existing values. #173
#2726: Use a tag instead of abbr for search-choice-close Already covered: the clear control now uses a button, removing the old abbr element. —
#2701: Allow activated instance to be programmatically opened Already covered: chosen:open opens an activated but closed single select in both classic adapters. #162
#2346: Support for Home and End keys Already covered: Home and End navigate results, alongside Page Up and Page Down. #132
#2319: Update title and class names from select on update Already covered: chosen:updated mirrors the source title and refreshes inherited classes when enabled. #124, #126
#1583: Ignore context (right click) mousedown events Fixed: a secondary-button press no longer opens closed jQuery, Prototype, Vanilla, or React controls. Primary clicks and touch activation still work. Result selection was already guarded in the classic adapters. #201
#3132: Speed up rendering when there are lot of select choen Declined: Replacing .html() with .text() would render escaped entities literally and discard intentional selected optgroup markup; the patch does not change result rendering. —
#3122: Add testing Declined: This patch adds tests to the old Grunt and QUnit setup; the fork now has maintained Jasmine, core, and browser suites across four editions. —
#3048: include special character with insensitive search Already covered: The shared matcher already folds accented characters for case-insensitive search. The upstream patch also discards its replace() result, so it would not apply its proposed folding. —
#3029: form_field_jq.hide(...).after is not a function Already covered: The jQuery adapter hides the source select and inserts the Chosen container in separate operations, avoiding the reported .hide(...).after failure. —
#3026: Colors moved to variables in SCSS Already covered: Sass colors are configurable through !default variables and CSS custom properties; see fork PR #150 and Harvest issue #3053. —
#3006: Updated "prism.js" to un-minified v1.15.0 (Closes: #3005) Already covered: The docs bundle includes Prism source, its license, and a source URL file; no historical Prism 1.15.0 upgrade is needed. —
#2992: Change setup documentation Already covered: Current README and demo setup sections explain package installation and distributed assets. The Visual Studio metadata in this old patch is not needed. —
#2990: Remove 100ms lag on blur by using custom blur and focus events. Fixed: The classic adapters now check blur on the next event loop turn. Keyboard focus loss closes promptly; label-press and mobile behavior remain covered by tests. #204
#2923: Add option class passthrough for multi-select Already covered: The opt-in inherit_option_classes setting copies source option classes to selected chips across the maintained editions. —
#2902: Refactor jasmine tests Declined: The proposed historical Jasmine migration no longer matches the fork test tree, which already has shared core and adapter coverage. —
#2898: Add new option: search_word_boundary Fixed: Opt-in locale-specific word boundaries prevent accented letters from creating false word starts while retaining built-in match highlighting. jQuery, Prototype, Vanilla, and React have regression tests and live examples. A follow-up corrects normalized highlighting with multi-character boundaries in the classic adapters. #207, #208
#2761: Implement the ability to search with true regexes Already covered: The opt-in search_matcher callback accepts application-supplied regex matching without changing the default literal search; see fork PR #155. —
#2738: WIP: Add Coffeelint Declined: This WIP adds an obsolete CoffeeLint configuration and a large formatting pass without a demonstrated behavior fix. —
#2733: General touchup Declined: This broad historical event-binding refactor has no isolated bug and conflicts with subsequent focus and event work in the fork. —
#2716: WIP: focus before selecting result Already covered: The current result handler retains search focus when a multiple select stays open and avoids refocusing a closed single select after selection. —
#2715: add shortcut for deselect Already covered: Single deselection and keyboard removal are supported, including the documented Backspace behavior. —
#2703: Make search match against text instead of html Already covered: The shared search matcher matches parsed option text rather than generated escaped HTML. —
#2678: adds the ability to select all options under a group Already covered: Opt-in select_by_group makes multiple-select optgroup headings selectable across editions; see fork PR #171. —
#2618: Allow for a transliteration callback Already covered: The normalize_search_text callback transforms queries and option labels for built-in matching, including transliteration. —
#2599: Support for Fuzzy Searching Strings #2028 rebased against current master branch to fix merge conflict Already covered: Combining split_search_terms: true and search_contains: true matches every substring in any order and highlights each match in all four editions. The Options/API page now shows an example. —
#2596: Accessibility updates #264 - Add aria attributes to better support screen readers and keyboard navigation Already covered: Combobox and listbox roles, accessible state, and keyboard navigation are implemented and tested in the current fork. —
#2594: Issue #2075: Fix client-side validation Already covered: Required native selects remain available for browser validation; the adapters preserve the source select as the form value and validation source. —
#2574: Custom data-attributes for chosen generated options. Already covered: Opt-in data attribute passthrough from source options is available across the editions; see fork PR #187. —
#2495: use inherit for width when offsetWidth is 0 Already covered: Width calculation falls back to computed styles when a hidden select has zero offsetWidth; see the fork fixes for hidden select sizing. —
#2356: Added event chosen:search Already covered: Chosen emits chosen:search and chosen:search_updated events for search interaction and result refreshes. —
#2047: Adding accessibility to chosen: Already covered: The current controls expose combobox/listbox roles, unique result identifiers, and ARIA selection state. —
#2036: Add screen edge detection Already covered: Dropdown placement detects available space and supports opt-in positioning for clipped containers. —
#2013: Accessible <select> elem solution Declined: Keeping a second accessible native select alongside the custom combobox duplicates the control for assistive technology. The fork instead exposes accessible state on Chosen while retaining the original select for values and validation. —
#1683: Add a way to do left bound word search to chosen for arbitrary word bounardies Already covered: A custom search_matcher can implement application-specific separators or word boundaries without adding an unsafe regex-string option. —
#1630: SearchChoice pill: inherit classes on the option Already covered: Opt-in inherit_option_classes copies option classes to the selected pill. —
#1606: Add CSS selector to make sure full placeholder text is visible after deselecting Already covered: The Sass selector already applies overflow and ellipsis rules to .chosen-single-with-deselect.chosen-default as well as ordinary single selects. —
#1487: search_string_match testing Declined: The old search_string_match test refactor targets a superseded test layout; the current matcher has shared core and adapter coverage. —
#1415: added enable, disable and deselect Already covered: Applications can change native disabled or selected state and trigger chosen:updated; native values and events remain authoritative. Separate command events would duplicate that API. —
#900: Fixes position of invalid error flag on required selects - fixes #515 Fixed: Reproduced displaced required-field message anchors in Chromium. The native select aligns with the visible control only while invalid across jQuery, Prototype, Vanilla, and React. Its original styles return after a valid choice, form reset, or teardown. #206
#166: Feature: Option adding (with custom callback) Already covered: Opt-in create_option adds to the native select and supports a callback, preserving the submitted value source. —

Corrections and updates

If an assessment is wrong or you can provide a reproduction for a blocked issue, open an issue in the fork with the Harvest issue link and current behavior. We maintain the source tracker alongside code and documentation changes.

Clone this wiki locally