Skip to main content

An official website of the United States government

Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

https

Secure .gov websites use HTTPS
A lock 🔒 or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Javascript is required for this form to function properly.
Javascript does not appear to be enabled.

Department of Agriculture logo
USDA Animal and Plant Health Inspection Service (APHIS) - Customer Experience Survey

The purpose of this survey is to gain insight into how to enhance USDA-APHIS's online presence and service to our Nation. Survey insights will be used to inform improvements to the APHIS website. Participation is voluntary and all responses are confidential. This survey will take around 4 minutes to complete. *Denotes required question

A red asterisk (*) indicates a required field.

I am satisfied with the service I received from this website.* *
Today's web experience increased my trust in Animal and Plant Health Inspection Service (APHIS).* *
I was able to find the information I needed on this website.* *
The information on this website was easy to understand.* *
It took a reasonable amount of time to complete what I needed to do on this website.* *
I understand the purpose of the information presented to me on this website.* *
If I contacted a USDA employee using information on this website, the employee I interacted with was helpful.
2500 characters allowed
How do you describe your race? (Choose all that apply)
Do you describe yourself as Hispanic or Latino?
Are you a USDA Employee?
Did any of the following impact your ability to use the website today? (Choose all that apply)
Do you receive USDA benefits to help care for a dependent?
Which of the following do you identify with? (Choose all that apply)

According to the Paperwork Reduction Act of 1995, an agency may not conduct or sponsor, and a person is not required to respond to, a collection of information unless it displays a valid OMB control number. The valid OMB control number for this information collection is 0503-0024. The time required to complete this information collection is estimated to average 4 minutes per response, including the time for reviewing instructions and completing the collection of information.

An official form of the United States government. Provided by Touchpoints
OMB Approval #0503-0024 · Expiration Date 04/30/2023


"; if (item.value.length > 0 && item.value != quillDefaultHTML) delete(questions[item.name]); } }); for (var key in questions) { this.showValidationError(questions[key], 'A response is required: '); return false; } return true; }, checkDate: function(form) { var dateItems = form.querySelectorAll('.date-select'); var questions = {}; // Build a dictionary of questions which require an answer Array.prototype.forEach.call(dateItems, function(item) { questions[item.name] = item }); Array.prototype.forEach.call(dateItems, function(item) { if (item.value.length == 0) { delete(questions[item.name]); } else { var isValidDate = Date.parse(item.value); if (!isNaN(isValidDate)) delete(questions[item.name]); } }); for (var key in questions) { this.showValidationError(questions[key], 'Please enter a valid value: '); return false; } return true; }, checkEmail: function(form) { var emailItems = form.querySelectorAll('input[type="email"]'); var questions = {}; // Build a dictionary of questions which require an answer Array.prototype.forEach.call(emailItems, function(item) { questions[item.name] = item }); Array.prototype.forEach.call(emailItems, function(item) { if (item.value.length == 0) { delete(questions[item.name]); } else { var EmailRegex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (EmailRegex.test(item.value)) delete(questions[item.name]); } }); for (var key in questions) { this.showValidationError(questions[key], 'Please enter a valid value: '); return false; } return true; }, checkPhone: function(form) { var phoneItems = form.querySelectorAll('input[type="tel"]'); var questions = {}; // Build a dictionary of questions which require an answer Array.prototype.forEach.call(phoneItems, function(item) { questions[item.name] = item }); Array.prototype.forEach.call(phoneItems, function(item) { if (item.value.length == 0) { delete(questions[item.name]); } else { const PhoneRegex = /^\(\d{3}\) \d{3}-\d{4}$/; if (PhoneRegex.test(item.value)) delete(questions[item.name]); } }); for (var key in questions) { this.showValidationError(questions[key], 'Please enter a valid value: '); return false; } return true; }, showValidationError: function(question, error) { var questionDiv = question.closest(".question"); var label = questionDiv.querySelector(".usa-label") || questionDiv.querySelector(".usa-legend"); var questionNum = label.innerText; // show page with validation error var errorPage = question.closest(".section"); if (!errorPage.classList.contains("fba-visible")) { var visiblePage = this.formComponent().getElementsByClassName("section fba-visible")[0]; visiblePage.classList.remove("fba-visible"); errorPage.classList.add("fba-visible"); } questionDiv.setAttribute('class', 'usa-form-group usa-form-group--error'); var span = d.createElement('span'); span.setAttribute('id', 'input-error-message'); span.setAttribute('role','alert'); span.setAttribute('class','usa-error-message'); span.innerText = error + questionNum; label.parentNode.insertBefore(span, label.nextSibling); var input = d.createElement('input'); input.setAttribute('hidden', 'true'); input.setAttribute('id','input-error'); input.setAttribute('type','text'); input.setAttribute('name','input-error'); input.setAttribute('aria-describedby','input-error-message'); questionDiv.appendChild(input); questionDiv.scrollIntoView(); questionDiv.focus(); // enable submit button ( so user can fix error and resubmit ) var submitButton = this.formComponent().querySelector("[type='submit']"); submitButton.disabled = false; submitButton.classList.remove("aria-disabled"); }, hideValidationError: function(form) { var elem = form.querySelector('.usa-form-group--error'); if (elem == null) return; elem.setAttribute('class','question'); var elem = form.querySelector('#input-error-message'); if (elem != null) elem.parentNode.removeChild(elem); elem = form.querySelector('#input-error'); if (elem != null) elem.parentNode.removeChild(elem); }, textCounter: function(event) { const field = event.target; const maxLimit = event.target.getAttribute("maxlength"); var countfield = field.parentNode.querySelector(".counter-msg"); if (field.value.length > maxLimit) { field.value = field.value.substring(0, maxLimit); countfield.innerText = '0 characters left'; return false; } else { countfield.innerText = "" + (maxLimit - field.value.length) + " characters left"; } }, loadButton: function() { // Add a landmark for button this.landmarkElement = d.createElement('div'); this.landmarkElement.setAttribute('aria-label', 'Feedback button'); this.landmarkElement.setAttribute('role', 'complementary'); // Add the fixed, floating tab button this.buttonEl = d.createElement('button'); this.buttonEl.setAttribute('id', 'fba-button'); this.buttonEl.setAttribute('data-id', this.options.formId); this.buttonEl.setAttribute('class', 'fba-button fixed-tab-button usa-button'); this.buttonEl.setAttribute('name', 'fba-button'); this.buttonEl.setAttribute('aria-label', this.options.modalButtonText); this.buttonEl.setAttribute('aria-haspopup', 'dialog'); this.buttonEl.setAttribute('aria-controls', this.modalId()); this.buttonEl.setAttribute('data-open-modal', ''); this.buttonEl.innerHTML = this.options.modalButtonText; this.buttonEl.addEventListener('click', () => d.dispatchEvent(new CustomEvent('onTouchpointsModalOpen', { detail: { form: this } } ))); this.landmarkElement.appendChild(this.buttonEl); d.body.appendChild(this.landmarkElement); this.loadFeebackSkipLink(); }, loadFeebackSkipLink: function() { this.skipLink = d.createElement('a'); this.skipLink.setAttribute('class', 'usa-skipnav touchpoints-skipnav'); this.skipLink.setAttribute('href', '#fba-button'); this.skipLink.addEventListener('click', function() { d.querySelector("#fba-button").focus(); }); this.skipLink.innerHTML = 'Skip to feedback'; var existingSkipLinks = d.querySelector('.usa-skipnav'); if(existingSkipLinks) { existingSkipLinks.insertAdjacentElement('afterend', this.skipLink); } else { d.body.prepend(this.skipLink); } }, sendFeedback: function() { d.dispatchEvent(new Event('onTouchpointsFormSubmission')); var form = this.formElement(); this.ajaxPost(form, this.formSuccess); }, successHeadingText: function() { return this.options.successTextHeading; }, successText: function() { return this.options.successText; }, showFormSuccess: function(headerText, bodyHTML) { var formComponent = this.formComponent(); var formElement = this.formElement(); var alertElement = formComponent.querySelector(".fba-alert"); var alertElementHeading = formComponent.querySelector(".usa-alert__heading"); var alertElementBody = formComponent.querySelector(".usa-alert__text"); // Display success Message alertElementHeading.innerHTML = headerText; alertElementBody.innerHTML = bodyHTML alertElement.removeAttribute("hidden"); this.formComponent().scrollIntoView(); // Hide Form Elements if (formElement) { // And clear the Form's Fields formElement.reset(); localStorage.removeItem(this.formLocalStorageKey()); if (formElement.querySelector('.touchpoints-form-body')) { var formBody = formElement.querySelector('.touchpoints-form-body'); if(formBody) { formBody.setAttribute("hidden", true); } } if (formComponent.querySelector('.touchpoints-form-disclaimer')) { var formDisclaimer = formComponent.querySelector('.touchpoints-form-disclaimer'); if(formDisclaimer) { formDisclaimer.setAttribute("hidden", true); } } } }, resetFormDisplay: function() { if (this.successState === false) { return false; } // Hide and Reset Flash Message this.resetErrors(); // Re-enable Submit Button var formElement = this.formElement(); var submitButton = formElement.querySelector("[type='submit']"); submitButton.disabled = false; // Show Form Elements if (formElement) { if (formElement.querySelector('.touchpoints-form-body')) { var formBody = formElement.querySelector('.touchpoints-form-body') if(formBody) { formBody.removeAttribute("hidden"); } } } }, formSuccess: function(e) { // Clear the alert box var formComponent = this.formComponent(); var alertElement = formComponent.querySelector(".fba-alert"); var alertElementBody = formComponent.getElementsByClassName("usa-alert__text")[0]; var alertErrorElement = formComponent.querySelector(".fba-alert-error"); var alertErrorElementBody = alertErrorElement.getElementsByClassName("usa-alert__text")[0]; alertElementBody.innerHTML = ""; alertErrorElementBody.innerHTML = ""; var formElement = this.formElement(); var submitButton = formElement.querySelector("[type='submit']"); if (e.target.readyState === 4) { if (e.target.status === 201) { // SUCCESS! this.successState = true; d.dispatchEvent(new Event('onTouchpointsFormSubmissionSuccess')); this.isFormSubmitted = true; if(submitButton) { submitButton.disabled = true; } const submission = JSON.parse(e.target.response).submission; const successHeaderText = submission.form.success_text_heading; const successBodyText = submission.form.success_text; this.showFormSuccess(successHeaderText, successBodyText); } else if (e.target.status === 422) { // FORM ERRORS this.successState = false; d.dispatchEvent(new Event('onTouchpointsFormSubmissionError')); if(submitButton) { submitButton.disabled = false; } var jsonResponse = JSON.parse(e.target.response); var errors = jsonResponse.messages; for (var err in errors) { if (errors.hasOwnProperty(err)) { alertErrorElementBody.innerHTML += err; alertErrorElementBody.innerHTML += " "; alertErrorElementBody.innerHTML += errors[err]; alertErrorElementBody.innerHTML += "
"; } } alertErrorElement.removeAttribute("hidden"); const errorMessage = this.formComponent().querySelector('.usa-alert--error'); if (errorMessage) { errorMessage.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } else { // OTHER SERVER ERROR this.successState = false; d.dispatchEvent(new Event('onTouchpointsFormSubmissionError')); alertErrorElement.removeAttribute("hidden"); alertErrorElementBody.innerHTML += "Server error. We're sorry, but this submission was not successful. The Product Team has been notified."; const errorMessage = this.formComponent().querySelector('.usa-alert--error'); if (errorMessage) { errorMessage.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } } }, ajaxPost: function (form, callback) { var url = form.action; var xhr = new XMLHttpRequest(); // for each form question var params = this.options.questionParams(form); // Combine Referrer and Pathname with Form-specific params params["referer"] = d.referrer; params["hostname"] = N.location.hostname; params["page"] = N.location.pathname; params["query_string"] = N.location.search; params["location_code"] = form.querySelector("#fba_location_code") ? form.querySelector("#fba_location_code").value : null; params["fba_directive"] = form.querySelector("#fba_directive") ? form.querySelector("#fba_directive").value : null; params["language"] = "en"; // Submit Feedback with a POST xhr.open("POST", url); xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8;"); xhr.onload = callback.bind(this); xhr.send(JSON.stringify({ "submission": params, })); }, currentPageNumber: 1, // start at 1 showInstructions: function() { const instructions = this.formComponent().getElementsByClassName("fba-instructions")[0]; if(instructions) { if (this.currentPageNumber == 1) { instructions.removeAttribute("hidden"); } else { instructions.setAttribute("hidden", true); } } const requiredQuestionsNotice = this.formComponent().getElementsByClassName("required-questions-notice")[0]; if(requiredQuestionsNotice) { if (this.currentPageNumber == 1) { requiredQuestionsNotice.removeAttribute("hidden"); } else { requiredQuestionsNotice.setAttribute("hidden", true); } } }, _pagination: function() { var previousButtons = this.formComponent().getElementsByClassName("previous-section"); var nextButtons = this.formComponent().getElementsByClassName("next-section"); var self = this; for (var i = 0; i < previousButtons.length; i++) { previousButtons[i].addEventListener('click', function(e) { e.preventDefault(); var currentPage = e.target.closest(".section"); if (!this.validateForm(currentPage)) return false; currentPage.classList.remove("fba-visible"); this.currentPageNumber--; this.showInstructions(); currentPage.previousElementSibling.classList.add("fba-visible"); const previousPageEvent = new CustomEvent('onTouchpointsFormPreviousPage', { detail: { formComponent: this } }); d.dispatchEvent(previousPageEvent); // if in a modal, scroll to the top of the modal on previous button click if(this.formComponent().getElementsByClassName("fba-modal")[0]) { this.formComponent().scrollTo(0,0); } else { N.scrollTo(0, 0); } }.bind(self)); } for (var i = 0; i < nextButtons.length; i++) { nextButtons[i].addEventListener('click', function(e) { e.preventDefault(); var currentPage = e.target.closest(".section"); if (!this.validateForm(currentPage)) return false; currentPage.classList.remove("fba-visible"); this.currentPageNumber++; this.showInstructions(); currentPage.nextElementSibling.classList.add("fba-visible"); const nextPageEvent = new CustomEvent('onTouchpointsFormNextPage', { detail: { formComponent: this } }); d.dispatchEvent(nextPageEvent); // if in a modal, scroll to the top of the modal on next button click if(this.formComponent().getElementsByClassName("fba-modal")[0]) { this.formComponent().scrollTo(0,0); } else { N.scrollTo(0, 0); } }.bind(self)) } }, modalId: function() { return `fba-modal-${this.options.formId}`; }, modalElement: function() { return document.getElementById(this.modalId()); }, enableLocalStorage: function() { const form = this.formElement(); const savedData = localStorage.getItem(this.formLocalStorageKey()); if (savedData) { const formData = JSON.parse(savedData); for (const key in formData) { const input = form.querySelector(`[name="${key}"]`); if (input) { input.value = formData[key]; } } } form.addEventListener('input', (event) => { const inputData = {}; const formData = new FormData(form); formData.forEach((value, key) => { inputData[key] = value; }); localStorage.setItem(this.formLocalStorageKey(), JSON.stringify(inputData)); }); }, }; }; // Specify the options for your form var touchpointFormOptions8a22dd4d = { 'formId': "8a22dd4d", 'modalButtonText': "Feedback", 'elementSelector': "", 'css' : ".fba-modal-dialog {\n font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n font-size: 100%;\n}\n\n.fba-modal-dialog h1 {\n margin-right: 20px;\n margin-top: -1rem;\n word-wrap: break-word;\n}\n\n.fba-inline-container {\n background: #fff;\n border: 1px solid #E5E5E5;\n max-width: 35rem;\n margin: 0 auto 40px auto;\n}\n\n.fixed-tab-button {\n bottom: 0;\n padding: 5px 10px;\n position: fixed;\n right: 12px;\n z-index: 9999;\n\n}\n#fba-button.usa-button:hover,\n.fixed-tab-button.usa-button:hover {\n color:white;\n background-color:#1a4480;\n border-bottom:0;\n text-decoration:none;\n}\n\n#fba-text-name, #fba-text-email {\n max-width: 100% !important;\n font-size: 100%\n}\n\n/* Form Sections */\n.touchpoints-form-wrapper form div.section {\n display: none;\n}\n.touchpoints-form-wrapper form div.section.fba-visible {\n display: block;\n}\n\n.hide {\n display: none;\n}\n\n\n/*! from USWDS uswds v2.9.0 */\n#fba-button.usa-button{\n font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n font-size:1.06rem;\n line-height:0.9;\n -moz-osx-font-smoothing:grayscale;\n -webkit-font-smoothing:antialiased;\n color:white;\n background-color:#005ea2;\n -webkit-appearance:none;\n -moz-appearance:none;\n appearance:none;\n border:0;\n border-radius:0.25rem;\n cursor:pointer;\n display:inline-block;\n font-weight:bold;\n margin-right:0.5rem;\n padding:0.75rem 1.25rem;\n text-align:center;\n text-decoration:none;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n}\n\n.usa-skipnav.touchpoints-skipnav{\n font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n font-size:1.06rem;\n line-height:1.5;\n color:#005ea2;\n text-decoration:underline;\n background:transparent;\n left:0;\n padding:0.5rem 1rem;\n position:absolute;\n top:-3.8rem;\n transition:0.15s ease-in-out;\n z-index:100;\n}\n.usa-skipnav.touchpoints-skipnav:visited{\n color:#54278f;\n}\n.usa-skipnav.touchpoints-skipnav:hover{\n color:#1a4480;\n}\n.usa-skipnav.touchpoints-skipnav:active{\n color:#162e51;\n}\n.usa-skipnav.touchpoints-skipnav:focus{\n outline:0.25rem solid #2491ff;\n outline-offset:0;\n}\n.usa-skipnav.touchpoints-skipnav:focus{\n background:white;\n left:0;\n position:absolute;\n top:0;\n transition:0.2s ease-in-out;\n}\n\n.fba-modal-dialog abbr[title=required]{\n text-decoration:none;\n}\n\n/* Custom */\n.touchpoints-form-wrapper .usa-banner {\n margin-top: 10px;\n}\n\n.usa-banner__header.touchpoints-footer-banner {\n min-height: 0;\n}\n\n.fba-modal-dialog .question-options.big-thumbs .usa-radio__label::before {\n display: none;\n}\n\n/* Same max-width as texarea */\n.touchpoints-form-body .big-thumbs {\n max-width: 35rem;\n}\n\n.question-options.big-thumbs .usa-radio__input--tile+.usa-radio__label {\n color: #005ea2;\n padding-left: 1rem;\n}\n\n.touchpoint-form .question-options {\n clear: both;\n}\n\n.touchpoint-form {\n max-width: 35em;\n margin-left: auto;\n margin-right: auto;\n}\n\n.fba-modal-dialog .margin-top-3{\n margin-top:1.5rem;\n}\n\n/* Override */\n.touchpoint-form .usa-form--large {\n max-width: 35rem;\n}\n\n.fba-modal-dialog .usa-sr-only{\n position:absolute;\n left:-999em;\n right:auto;\n}\n\n/* big thumbs up down buttons */\n.fba-modal-dialog .usa-icon{\n display:inline-block;\n fill:currentColor;\n height:1em;\n position:relative;\n width:1em;\n}\n\n.fba-modal-dialog .margin-top-2 {\n margin-top:1rem;\n}\n\n.fba-modal-dialog .text-center{\n text-align:center;\n}\n\n.fba-modal-dialog .font-sans-3xl{\n font-size:3.19rem;\n}\n\n.fba-modal-dialog .margin-bottom-2 {\n margin-bottom:1rem;\n}\n\n.fba-modal-dialog .margin-bottom-3 {\n margin-top:1.5rem;\n}\n\n.fba-modal-dialog .text-right{\n text-align:right;\n}\n\n.fba-modal-dialog .text-bold{\n font-weight:700;\n}\n\n.fba-modal-dialog .usa-button .margin-top-0{\n margin-top:0;\n}\n\n.fba-modal-dialog .previous-section.usa-button{\n margin-top:0;\n}\n\n.fba-modal-dialog .border-0{\n border:0 solid;\n}\n\n.fba-modal-dialog .border-gray-10{\n border-color:#e6e6e6;\n}\n\n.fba-modal-dialog .border-top{\n border-top:1px solid;\n}\n\n.fba-modal-dialog .display-none{\n display:none;\n}\n\n.fba-modal-dialog .padding-bottom-0 {\n padding-bottom:0;\n}\n\n.fba-modal-dialog .padding-top-0 {\n padding-top:0;\n}\n\n.fba-modal-dialog .touchpoints-form-wrapper .usa-form {\n max-width: 100%;\n}\n\n.ql-editor[contentEditable=true]:focus {\n outline: none;\n}", 'loadCSS' : true, 'formSpecificScript' : function() { }, 'deliveryMethod' : "touchpoints-hosted-only", 'successTextHeading' : "Success", 'successText' : "Thank you for your response! Your feedback will be used to improve the site and help us serve you better.", 'questionParams' : function(form) { return { answer_01 : form.querySelector("input[name=question_1026_answer_01]:checked") && form.querySelector("input[name=question_1026_answer_01]:checked").value, answer_02 : form.querySelector("input[name=question_1027_answer_02]:checked") && form.querySelector("input[name=question_1027_answer_02]:checked").value, answer_03 : form.querySelector("input[name=question_1028_answer_03]:checked") && form.querySelector("input[name=question_1028_answer_03]:checked").value, answer_04 : form.querySelector("input[name=question_1029_answer_04]:checked") && form.querySelector("input[name=question_1029_answer_04]:checked").value, answer_05 : form.querySelector("input[name=question_1030_answer_05]:checked") && form.querySelector("input[name=question_1030_answer_05]:checked").value, answer_06 : form.querySelector("input[name=question_1031_answer_06]:checked") && form.querySelector("input[name=question_1031_answer_06]:checked").value, answer_07 : form.querySelector("input[name=question_1038_answer_07]:checked") && form.querySelector("input[name=question_1038_answer_07]:checked").value, answer_09 : form.querySelector("#question_1032_answer_09") && form.querySelector("#question_1032_answer_09").value, answer_11 : form.querySelector("input[name=question_1039_answer_11]:checked") && Array.apply(null,form.querySelectorAll("input[name=question_1039_answer_11]:checked")).map(function(x) {return x.value;}).join(','), answer_12 : form.querySelector("input[name=question_1040_answer_12]:checked") && form.querySelector("input[name=question_1040_answer_12]:checked").value, answer_13 : form.querySelector("#question_1041_answer_13") && form.querySelector("#question_1041_answer_13").value, answer_14 : form.querySelector("input[name=question_1033_answer_14]:checked") && form.querySelector("input[name=question_1033_answer_14]:checked").value, answer_15 : form.querySelector("input[name=question_1034_answer_15]:checked") && Array.apply(null,form.querySelectorAll("input[name=question_1034_answer_15]:checked")).map(function(x) {return x.value;}).join(','), answer_16 : form.querySelector("#question_1042_answer_16") && form.querySelector("#question_1042_answer_16").value, answer_17 : form.querySelector("input[name=question_1043_answer_17]:checked") && form.querySelector("input[name=question_1043_answer_17]:checked").value, answer_18 : form.querySelector("input[name=question_1035_answer_18]:checked") && Array.apply(null,form.querySelectorAll("input[name=question_1035_answer_18]:checked")).map(function(x) {return x.value;}).join(','), answer_19 : form.querySelector("#question_1036_answer_19") && form.querySelector("#question_1036_answer_19").value, answer_20 : form.querySelector("#question_1037_answer_20") && form.querySelector("#question_1037_answer_20").value, } }, 'suppressUI' : true, 'suppressSubmitButton' : false, 'htmlFormBody' : function() { return null; }, 'htmlFormBodyNoModal' : function() { return null; } } // Create an instance of a Touchpoints form object window.touchpointForm8a22dd4d = new FBAform(document, window); window.touchpointForm8a22dd4d.init(touchpointFormOptions8a22dd4d);